- // ==UserScript==
- // @name XerClient
- // @namespace http://tampermonkey.net/
- // @version 0.5
- // @description Not just a client, it's XerClient.
- // @author XerClient
- // @match https://bloxd.io/
- // @icon https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcT_PA4hIGnGfIWa7Yk6Q0586W3uzezNAydF6YZ0g6QB6A&s
- // @grant none
- // @license none
- // ==/UserScript==
-
- ;(original => (Date.now = () => original() * 2.1).toString = () => "function now() {\n [native code]\n}")(Date.now);
-
- (function() {
- 'use strict';
-
- // Create GUI element and set its style
- var gui = document.createElement('div');
- gui.style.position = 'fixed';
- gui.style.top = '10px';
- gui.style.right = '10px';
- gui.style.backgroundColor = '#b51515'; // Main color is black
- gui.style.color = 'white';
- gui.style.border = '1px solid #333';
- gui.style.padding = '5px';
- gui.style.borderRadius = '5px';
- gui.style.zIndex = '9999';
- gui.style.display = 'none'; // Initially hide GUI
- document.body.appendChild(gui);
-
- // Function to toggle GUI visibility with 'U' key
- document.addEventListener('keydown', function(event) {
- if (event.key.toUpperCase() === 'U') {
- if (gui.style.display === 'none') {
- gui.style.display = 'block';
- } else {
- gui.style.display = 'none';
- }
- }
- });
-
- // Create note element for control instructions
- var note = document.createElement('div');
- note.textContent = 'Controls: Press U to toggle GUI';
- note.style.position = 'fixed';
- note.style.top = '50%';
- note.style.left = '50%';
- note.style.transform = 'translate(-50%, -50%)';
- note.style.backgroundColor = 'rgba(0, 0, 0, 0.5)';
- note.style.color = 'white';
- note.style.padding = '10px';
- note.style.borderRadius = '5px';
- note.style.zIndex = '9999';
- document.body.appendChild(note);
-
- // Function to hide note with spacebar press ('N' key in the original code)
- document.addEventListener('keydown', function(event) {
- if (event.code === 'Space') {
- note.style.display = 'none';
- }
- });
-
- // Rest of the code...
-
- var wholeAppWrapper = document.querySelector(".WholeAppWrapper");
- document.addEventListener('keydown', function(event) {
- if (event.key === 'U') {
- if (wholeAppWrapper.style.visibility === 'hidden') {
- wholeAppWrapper.style.visibility = 'visible';
- } else {
- wholeAppWrapper.style.visibility = 'hidden';
- }
- }
- });
-
- document.addEventListener('keydown', function(event) {
- if (event.key === 'u') {
- if (wholeAppWrapper.style.visibility === 'hidden') {
- wholeAppWrapper.style.visibility = 'visible';
- } else {
- wholeAppWrapper.style.visibility = 'hidden';
- }
- }
- });
-
- let GUI_THEME = {
- mainColor: "#b51515",
- transparentColor: "rgba(255, 0, 0, 0.4)",
- gradientFirst: "#6C3E93",
- gradientSecond: "#4B0082"
- };
-
- function addColorPicker(thingToChange) {
- let colorInput = document.createElement('input');
- colorInput.type = 'color';
- colorInput.value = thingToChange;
- colorInput.style.width = '100px';
-
- colorInput.addEventListener('input', function (event) {
- thingToChange = event.target.value;
- updateGUIColors(GUI_THEME.mainColor, GUI_THEME.transparentColor, GUI_THEME.gradientFirst, GUI_THEME.gradientSecond);
- });
- gui.appendChild(colorInput);
- return colorInput;
- }
-
- document.querySelector('.Title.FullyFancyText').textContent = "XerClient";
- let toggleKey = 'T';
-
- document.addEventListener('keydown', function(event) {
- if (event.key.toUpperCase() === toggleKey) {
- if (gui.style.display === 'none') {
- gui.style.display = 'block';
- } else {
- gui.style.display = 'none';
- }
- }
- });
-
- let isAutoRespawnEnabled = false;
- let isAutoDenyTeleportEnabled = false;
- let youtubeVolume = 100; // Default volume
- let buttonArray = [];
- let modal;
- let watermark;
-
- function createStyledButton(text, onClickFunction, tooltipText = "") {
- const container = document.createElement('div');
- const button = document.createElement('button');
- button.textContent = text;
- button.onclick = onClickFunction;
- button.style.padding = '8px 15px';
- button.style.margin = '5px 0';
- button.style.borderRadius = '5px';
- button.style.border = 'none';
- button.style.background = `linear-gradient(90deg, ${GUI_THEME.gradientFirst}, ${GUI_THEME.gradientSecond})`;
- button.style.color = 'white';
- button.style.cursor = 'pointer';
- button.style.transition = 'background 0.3s';
- button.onmouseover = function() {
- button.style.background = `linear-gradient(90deg, ${GUI_THEME.gradientSecond}, ${GUI_THEME.gradientFirst})`;
- };
- button.onmouseout = function() {
- button.style.background = `linear-gradient(90deg, ${GUI_THEME.gradientFirst}, ${GUI_THEME.gradientSecond})`;
- };
- buttonArray.push(button);
- if (tooltipText) {
- const tooltip = document.createElement('div');
- tooltip.textContent = "?";
- tooltip.title = tooltipText;
- tooltip.style.display = "inline-block";
- tooltip.style.marginLeft = "10px";
- tooltip.style.color = "white";
- tooltip.style.cursor = "pointer";
- container.appendChild(button);
- container.appendChild(tooltip);
- return container;
- }
-
- return button;
- }
-
- // Remove Game's Background Music
- function removeGameBackgroundMusic() {
- const audioElements = document.querySelectorAll('audio, video');
- for (let audio of audioElements) {
- audio.pause();
- audio.remove();
- }
- }
-
- removeGameBackgroundMusic();
-
- // Welcome message modal
- modal = document.createElement('div');
- modal.style.position = 'fixed';
- modal.style.top = '50%';
- modal.style.left = '50%';
- modal.style.transform = 'translate(-50%, -50%)';
- modal.style.backgroundColor = GUI_THEME.mainColor;
- modal.style.border = '1px solid #333';
- modal.style.padding = '20px';
- modal.style.borderRadius = '5px';
- modal.style.zIndex = '99999';
- modal.innerHTML = "<strong style='color: white;'>Thanks for choosing XerClient! Join the Official Discord From the GUI! Press T to toggle the menu for the first time and Enjoy!</strong><br>";
- const closeButton = createStyledButton('Close', function() {
- document.body.removeChild(modal);
- });
- modal.appendChild(closeButton);
- document.body.appendChild(modal);
-
- // GUI container
- function addColorPicker(thingToChange) {
- let colorInput = document.createElement('input');
- colorInput.type = 'color';
- colorInput.value = GUI_THEME[thingToChange];
- colorInput.style.width = '100px';
-
- colorInput.addEventListener('input', function (event) {
- GUI_THEME[thingToChange] = event.target.value;
- updateGUIColors(GUI_THEME.mainColor, GUI_THEME.transparentColor, GUI_THEME.gradientFirst, GUI_THEME.gradientSecond);
- });
- gui.appendChild(colorInput);
- return colorInput;
- }
- addColorPicker("mainColor");
- addColorPicker("transparentColor");
- addColorPicker("gradientFirst");
- addColorPicker("gradientSecond");
- function addGUIComponents() {
- // Toggle Key Setting
- const toggleKeyLabel = document.createElement('label');
- toggleKeyLabel.textContent = 'Toggle Key:';
- const toggleKeyInput = document.createElement('input');
- toggleKeyInput.type = 'text';
- toggleKeyInput.value = toggleKey;
- toggleKeyInput.maxLength = 1;
- toggleKeyInput.style.width = '30px';
- toggleKeyInput.addEventListener('input', function(event) {
- toggleKey = toggleKeyInput.value.toUpperCase();
- });
- gui.appendChild(toggleKeyLabel);
- gui.appendChild(toggleKeyInput);
- gui.appendChild(document.createElement('br'));
-
- // Watermark
- watermark = document.createElement('div');
- watermark.textContent = 'XerClient';
- watermark.style.position = 'fixed';
- watermark.style.top = '5px';
- watermark.style.left = '50%';
- watermark.style.transform = 'translateX(-50%)';
- watermark.style.color = 'white';
- watermark.style.fontSize = '24px';
- watermark.style.fontWeight = 'bold';
- watermark.style.padding = '5px 10px';
- watermark.style.backgroundColor = GUI_THEME.transparentColor;
- watermark.style.borderRadius = '5px';
- watermark.style.zIndex = '10000';
- document.body.appendChild(watermark);
-
- // Auto Respawn Toggle
- const respawnContainer = createStyledButton(
- isAutoRespawnEnabled ? 'Disable Auto Respawn' : 'Enable Auto Respawn',
- function() {
- isAutoRespawnEnabled = !isAutoRespawnEnabled;
- respawnContainer.firstChild.textContent = isAutoRespawnEnabled ? 'Disable Auto Respawn' : 'Enable Auto Respawn';
- },
- 'If enabled, when you die, the "Respawn" button will automatically click itself.'
- );
- gui.appendChild(respawnContainer);
-
- // Auto Deny Teleport Toggle
- const teleportContainer = createStyledButton(
- isAutoDenyTeleportEnabled ? 'Disable Auto Deny Teleport' : 'Enable Auto Deny Teleport',
- function() {
- isAutoDenyTeleportEnabled = !isAutoDenyTeleportEnabled;
- teleportContainer.firstChild.textContent = isAutoDenyTeleportEnabled ? 'Disable Auto Deny Teleport' : 'Enable Auto Deny Teleport';
- },
- 'If enabled, when somebody sends you a Teleport Request, it will automatically deny the teleport request.'
- );
- gui.appendChild(teleportContainer);
-
- // Crosshair URL Input
- const crosshairUrlLabel = document.createElement('label');
- crosshairUrlLabel.textContent = 'Crosshair URL:';
- const crosshairUrlInput = document.createElement('input');
- crosshairUrlInput.type = 'text';
- crosshairUrlInput.placeholder = 'Enter the URL for your crosshair';
- crosshairUrlInput.addEventListener('keydown', function(event) {
- if (event.key === 'Enter') {
- modifyCrossHair(crosshairUrlInput.value);
- }
- });
- const crosshairTooltip = document.createElement('div');
- crosshairTooltip.textContent = "?";
- crosshairTooltip.title = "Find a transparent Crosshair image online (Reddit, Pinterest, etc), and paste the URL to the image here. This will swap the crosshair image with the one you provided.";
- crosshairTooltip.style.display = "block";
- crosshairTooltip.style.marginTop = "5px";
- crosshairTooltip.style.color = "white";
- crosshairTooltip.style.cursor = "pointer";
-
- gui.appendChild(crosshairUrlLabel);
- gui.appendChild(crosshairUrlInput);
- gui.appendChild(crosshairTooltip);
-
- // YouTube Audio Loop Input
- const youtubeLabel = document.createElement('label');
- youtubeLabel.textContent = 'YouTube Audio Loop:';
- const youtubeInput = document.createElement('input');
- youtubeInput.type = 'text';
- youtubeInput.placeholder = 'Paste YouTube link here...';
- youtubeInput.addEventListener('keydown', function(event) {
- if (event.key === 'Enter') {
- playYoutubeLoop(youtubeInput.value);
- }
- });
- const youtubeTooltip = document.createElement('div');
- youtubeTooltip.textContent = "?";
- youtubeTooltip.title = "[MAKE SURE TO MUTE IN GAME MUSIC!!!] Copy and Paste the YouTube URL to a music video to add some vibe to your gameplay! My personal favorite is LoFi, but the options are endless!";
- youtubeTooltip.style.display = "block";
- youtubeTooltip.style.marginTop = "5px";
- youtubeTooltip.style.color = "white";
- youtubeTooltip.style.cursor = "pointer";
-
- gui.appendChild(youtubeLabel);
- gui.appendChild(youtubeInput);
- gui.appendChild(youtubeTooltip);
-
- // Volume slider for YouTube Audio
- const volumeLabel = document.createElement('label');
- volumeLabel.textContent = 'Volume:';
- gui.appendChild(volumeLabel);
-
- const volumeSlider = document.createElement('input');
- volumeSlider.type = 'range';
- volumeSlider.min = 0;
- volumeSlider.max = 100;
- volumeSlider.value = youtubeVolume;
- volumeSlider.oninput = function() {
- youtubeVolume = volumeSlider.value;
- adjustYoutubeVolume(youtubeVolume / 100); // The API expects a range from 0.0 to 1.0
- };
- gui.appendChild(volumeSlider);
-
- // Play and Pause buttons for YouTube Audio
- const playButton = createStyledButton('▶️', playYoutubeAudio);
- gui.appendChild(playButton);
-
- const pauseButton = createStyledButton('⏸️', pauseYoutubeAudio);
- gui.appendChild(pauseButton);
-
- createDiscordButton();
- }
-
- let youtubeIframe = null;
- function playYoutubeLoop(youtubeLink) {
- if (!youtubeIframe) {
- youtubeIframe = document.createElement('iframe');
- youtubeIframe.width = 0;
- youtubeIframe.height = 0;
- youtubeIframe.frameBorder = "0";
- youtubeIframe.allow = "autoplay";
- document.body.appendChild(youtubeIframe);
- }
-
- if (youtubeLink.includes('youtube.com/watch?v=')) {
- const videoId = youtubeLink.split('v=')[1].split('&')[0];
- youtubeIframe.src = `https://www.youtube.com/embed/${videoId}?autoplay=1&loop=1&playlist=${videoId}&enablejsapi=1&volume=${youtubeVolume}`;
- } else {
- alert('Please provide a valid YouTube link.');
- }
- }
-
- function pauseYoutubeAudio() {
- if (youtubeIframe) {
- youtubeIframe.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}', '*');
- }
- }
-
- function playYoutubeAudio() {
- if (youtubeIframe) {
- youtubeIframe.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}', '*');
- }
- }
-
- function adjustYoutubeVolume(value) {
- if (youtubeIframe) {
- youtubeIframe.contentWindow.postMessage(`{"event":"command","func":"setVolume","args":[${value * 100}]}`, '*');
- }
- }
-
- function modifyCrossHair(url) {
- const crossHairElement = document.querySelector('.CrossHair');
- if (crossHairElement) {
- crossHairElement.style.backgroundImage = `url(${url})`;
- crossHairElement.style.backgroundSize = 'contain';
- crossHairElement.style.backgroundRepeat = 'no-repeat';
- crossHairElement.style.backgroundPosition = 'center';
- crossHairElement.textContent = '';
- }
- }
-
- function autoDenyTeleport() {
- if (!isAutoDenyTeleportEnabled) return;
-
- const denyTeleportButton = document.querySelector('.UiReqDismissButt');
- if (denyTeleportButton) {
- denyTeleportButton.click();
- }
- }
-
- function applyColorChanges() {
- changeColorForElements('.SettingsMenu, .Inventory, .hotbar, .CenteredDiv', GUI_THEME.mainColor);
- changeColorForElements('.ChatMessages', GUI_THEME.transparentColor);
-
- const adBox = document.getElementById('gameadsbannerpic');
- if (adBox) {
- adBox.remove();
- }
- }
-
- function changeColorForElements(selector, color) {
- const elements = document.querySelectorAll(selector);
- for (let elem of elements) {
- elem.style.backgroundColor = color;
- }
- }
-
- function autoClickRespawn() {
- if (!isAutoRespawnEnabled) return;
- const respawnButton = document.querySelector('.RespawnButton');
- if (respawnButton && !respawnButton.disabled) {
- respawnButton.click();
- }
- }
-
- function createDiscordButton() {
- const discordButton = createStyledButton('Discord', function() {
- window.location.href = "https://discord.gg/yqTmu6CvNj";
- }, 'Join our Discord server!');
- gui.appendChild(discordButton);
- }
-
- function updateGUIColors(mainColor, transparentColor, gradientFirst, gradientSecond) {
- for (let button of buttonArray) {
- button.style.background = `linear-gradient(90deg, ${GUI_THEME.gradientFirst}, ${GUI_THEME.gradientSecond})`;
- }
- if (modal) {
- modal.style.backgroundColor = GUI_THEME.mainColor;
- }
- if (gui) {
- gui.style.backgroundColor = GUI_THEME.mainColor;
- }
- if (watermark) {
- watermark.style.backgroundColor = GUI_THEME.transparentColor;
- }
- }
-
- addGUIComponents(); // Ensures the GUI components are added when the script runs.
- setInterval(autoClickRespawn, 1000);
- setInterval(autoDenyTeleport, 1000);
- setInterval(applyColorChanges, 5); // Checks every 5 milliseconds
- })();