venge mod menu

CheatWare a mod menu for many games but at the moment only venge.io also works with school laptops/computers

// ==UserScript==
// @name         venge mod menu 
// @namespace    http://tampermonkey.net/
// @version      0.7
// @description  CheatWare a mod menu for many games but at the moment only venge.io also works with school laptops/computers
// @author       Zaidbaidadekalb
// @match        https://venge.io/
// @match        https://venge.io/#
// @icon         https://www.google.com/s2/favicons?domain=venge.io
// @grant        none
// @license GNU General Public License v3.0
// @run-at       document-end
// ==/UserScript==

alert("Thank you for using CheatWare Make sure the script is up to date or there will be a hight risk of ban");


var vengelink = "https://venge.io/"
var customFov = 103;

var key = "Zaid"
var link2 = "https://www.codegrepper.com/code-examples/javascript/how+to+position+a+button+in+javascript"

if (confirm("do you want to get key if not click cancel ")) {
  txt = alert("OK");
document.write('<!DOCTYPE html>');
document.write('<html>');
document.write('<head>');
document.write('<meta name="viewport" content="width=device-width, initial-scale=1">');
document.write('<style>');
document.write('.tooltip {');
document.write('  position: relative;');
document.write('  display: inline-block;');
document.write('}');
document.write('');
document.write('.tooltip .tooltiptext {');
document.write('  visibility: hidden;');
document.write('  width: 140px;');
document.write('  background-color: #555;');
document.write('  color: #fff;');
document.write('  text-align: center;');
document.write('  border-radius: 6px;');
document.write('  padding: 5px;');
document.write('  position: absolute;');
document.write('  z-index: 1;');
document.write('  bottom: 150%;');
document.write('  left: 50%;');
document.write('  margin-left: -75px;');
document.write('  opacity: 0;');
document.write('  transition: opacity 0.3s;');
document.write('}');
document.write('');
document.write('.tooltip .tooltiptext::after {');
document.write('  content: "";');
document.write('  position: absolute;');
document.write('  top: 100%;');
document.write('  left: 50%;');
document.write('  margin-left: -5px;');
document.write('  border-width: 5px;');
document.write('  border-style: solid;');
document.write('  border-color: #555 transparent transparent transparent;');
document.write('}');
document.write('');
document.write('.tooltip:hover .tooltiptext {');
document.write('  visibility: visible;');
document.write('  opacity: 1;');
document.write('}');
document.write('</style>');
document.write('</head>');
document.write('<body>');
document.write('');
document.write('<p>Just go to the pastebin then get key then Refreash page then put key .</p>');
document.write('');
document.write('<input type="text" value="https://pastebin.com/raw/RqsSfL9j" id="myInput">');
document.write('');
document.write('<div class="tooltip">');
document.write('<button onclick="myFunction()" onmouseout="outFunc()">');
document.write('  <span class="tooltiptext" id="myTooltip">Copy to clipboard</span>');
document.write('  Copy text');
document.write('  </button>');
document.write('</div>');
document.write('');
document.write('<script>');
document.write('function myFunction() {');
document.write('  var copyText = document.getElementById("myInput");');
document.write('  copyText.select();');
document.write('  copyText.setSelectionRange(0, 99999);');
document.write('  navigator.clipboard.writeText(copyText.value);');
document.write('  ');
document.write('  var tooltip = document.getElementById("myTooltip");');
document.write('  tooltip.innerHTML = "Copied: " + copyText.value;');
document.write('}');
document.write('');
document.write('function outFunc() {');
document.write('  var tooltip = document.getElementById("myTooltip");');
document.write('  tooltip.innerHTML = "Copy to clipboard";');
document.write('}');
document.write('</script>');
document.write('</body>');
document.write('</html>');
document.write('');

} else {
  txt = alert


}

if (confirm("Make sure you have the correct key if not click cancel here is the key:  " + key)) {
  txt = alert
} else {
  txt = alert("You clicked cancel");
div.remove()

}

var version = "the version is 0.5"

let div = document.createElement("div");
let btn = document.createElement("button");
let btn2 = document.createElement("button");
let vengeb = document.createElement("button");
let text = document.createElement("textContent");
let Cheat = document.createElement("textContent");
let github = document.createElement("button");




btn.innerHTML = "version";
btn2.innerHTML = "Start";
vengeb.innerHTML = "Venge.io!";
btn.style= "display:  block"; 
btn2.style= "display: block"; 
github.style = "display: block";
vengeb.style= "display: block"; 
vengeb.style.opacity = "0";



div.id = "div_id" ;
    div.className = "div_class";
    div.style= "display: inline-block"; 
    div.style = "background-color:#2c2c2c;";
    div.style.width = "300px";
    div.style.height = "350px";
    document.body.appendChild(div);
    div.style.zIndex = "10000000";  
    div.style.position = "fixed";
    div.style.top =  "440px"; //or whatever 
    div.style.left = "1500px"; // or whatever
    div.style.borderRadius = "5px";
    btn.style.borderRadius = "5px";
    btn.style.position = "absolute";
    btn2.style.position = "absolute";
    btn.style.marginLeft = "5px";
    btn2.style.marginLeft = "244px";
    btn2.style.marginTop = "253px";
    btn2.style.borderRadius = "5px";
    btn.style.marginTop = "5px";
    github.style.borderRadius = "5px";
    github.style.position = "absolute";
    btn.style.marginLeft = "5px";
    github.style.marginTop = "-220px";
    vengeb.style.marginTop = '227px'
    vengeb.style.marginLeft = "230px";
    vengeb.style.borderRadius = "5px";
    div.innerHTML = "Settings/Things";
    github.innerHTML = "GitHub Page";
    btn.style.backgroundColor = "#282828FF";
    github.style.backgroundColor = "#282828FF";
    btn2.style.backgroundColor = "#282828FF";
    vengeb.style.backgroundColor = "#282828FF";
    btn.style.border = "2 #FFFFFFB7";
    btn2.style.border = "2 #FFFFFFB7";
    github.style.border = "2 #FFFFFFB7";
    vengeb.style.border = "2 #FFFFFFB7";
    btn.style.padding = "3px 7px 3px 7px";
    btn2.style.padding = "3px 7px 3px 7px";
    github.style.padding = "3px 7px 3px 7px";
    vengeb.style.padding = "3px 7px 3px 7px";



btn.onclick = function () {
  alert(version);
};
// key \\
if (key === "Zaid") {
alert("You have the correct key");
}
vengeb.onclick = function () {
alert("Enjoy CheatWare")
javascript:(function(){window.s0=document.createElement('script');window.s0.setAttribute('type','text/javascript');window.s0.setAttribute('src','https://bookmarkify.it/bookmarklets/52126/raw');document.getElementsByTagName('body')[0].appendChild(window.s0);})();
if (window.location.href === vengelink){
  alert
} else {

}
}

btn2.onclick = function () {

vengeb.style.opacity = "1";

}
     
if (key != "Zaid") {
div.remove()


alert("wrong key or it might be that you just dident type anyhting in the keybox");

}
github.onclick = function () {
window.open("https://github.com/Zaidbaidadekalb/Game-cheats-WIP-");
}

btn.onmouseover = function() {mouseOverbtn()};
btn.onmouseout = function() {mouseOutbtn()};
btn2.onmouseover = function() {mouseOverbtn2()};
btn2.onmouseout = function() {mouseOutbtn2()};
github.onmouseover = function() {mouseOverg()};
github.onmouseout = function() {mouseOutg()};
vengeb.onmouseover = function() {mouseOverbtnv()};
vengeb.onmouseout = function() {mouseOutbtnv()};
function mouseOverbtn() {
    btn.style.backgroundColor = "#6D6D6DFF";

}
function mouseOutbtn() {
    btn.style.backgroundColor = "#282828FF";

}

function mouseOverbtn2() {
    btn2.style.backgroundColor = "#6D6D6DFF";

}

function mouseOutbtn2() {
    btn2.style.backgroundColor = "#282828FF";

}

function mouseOverg() {
    github.style.backgroundColor = "#6D6D6DFF";

}
function mouseOutg() {
    github.style.backgroundColor = "#282828FF";

}

function mouseOverbtnv() {
    vengeb.style.backgroundColor = "#6D6D6DFF";

}
function mouseOutbtnv() {
    vengeb.style.backgroundColor = "#282828FF";

}

//End of Key \\
div_id.appendChild(btn);
div_id.appendChild(btn2);
div_id.appendChild(vengeb);
div_id.appendChild(text);
div_id.appendChild(github);
div_id.appendChild(Cheat)
text.style.position = 'absolute';
text.textContent = "Main"
text.style.top = "210px";
text.style.left = "250px";
Cheat.style.position = 'absolute';
Cheat.textContent = "CheatWare"
Cheat.style.top = "310px";
Cheat.style.left = "90px";
Cheat.style.fontSize = "xx-large";
Cheat.className = "text2_class";




// The current position of mouse
let x = 0;
let y = 0;

// Query the element
const ele = document.getElementById('div_id');

// Handle the mousedown event
// that's triggered when user drags the element
const mouseDownHandler = function (e) {
    // Get the current mouse position
    x = e.clientX;
    y = e.clientY;

    // Attach the listeners to `document`
    document.addEventListener('mousemove', mouseMoveHandler);
    document.addEventListener('mouseup', mouseUpHandler);
};

const mouseMoveHandler = function (e) {
    // How far the mouse has been moved
    const dx = e.clientX - x;
    const dy = e.clientY - y;

    // Set the position of element
    ele.style.top = `${ele.offsetTop + dy}px`;
    ele.style.left = `${ele.offsetLeft + dx}px`;

    // Reassign the position of mouse
    x = e.clientX;
    y = e.clientY;
};

const mouseUpHandler = function () {
    // Remove the handlers of `mousemove` and `mouseup`
    document.removeEventListener('mousemove', mouseMoveHandler);
    document.removeEventListener('mouseup', mouseUpHandler);
};

ele.addEventListener('mousedown', mouseDownHandler);
(function(){
    let textspeed = 1;
    let backgroundspeed = 0;
    let hoverspeed = 1;
    let hoverbackgroundspeed = 0;

    let classestoberainbowed = document.getElementsByClassName('text2_class');
    let backgroundtoberainbowed = document.getElementsByClassName('foxrainbowbg');

    let spanstoberainbowed = spanArrayContents(classestoberainbowed);

    textcolorchange(spanstoberainbowed, textspeed);
    //Actually do the rainbow effect. Backgrounds only.
    let backgroundcounter = 0;
    setInterval(() => {

        for(let i = 0; i < backgroundtoberainbowed.length; i++) {
            backgroundtoberainbowed[i].style.backgroundColor = 'hsl(' + (backgroundcounter + Math.floor(i * 1)) + ', 100%, 70%';
        }
        backgroundcounter = backgroundcounter + backgroundspeed;
    }, 15);


    //Turn the rainbow effect on only when the mouse is over the element. Use foxrainbowhover to use.

    let rainbowhover = document.getElementsByClassName('foxrainbowhover');
    let invertedhover = document.getElementsByClassName('foxrainbowhoverinv');
    let rainbowelements = [];
    let rainbowinvelements = [];
    let hoverinterval = [];
    let hoverinvinterval = [];
    let hovercounters = [];
    let invcounters = [];
    let originalcolors = [];
    let originalinvcolors = [];

    for(let i = 0; i < rainbowhover.length; i++) {
        rainbowelements[i] = spanElementContents(rainbowhover[i]);
    }
    for(let i = 0; i < invertedhover.length; i++) {
        rainbowinvelements[i] = spanElementContents(invertedhover[i]);
    }



    //Set up the wavey effect with counters.
    for(let id = 0; id < rainbowelements.length; id++) {
        hovercounters[id] = [];
        for(let i = 0; i < rainbowelements[id].length; i++) {
            hovercounters[id].push(i);
        }
    }

    for(let id = 0; id < rainbowinvelements.length; id++) {
        invcounters[id] = [];
        for(let i = 0; i < rainbowinvelements[id].length; i++) {
            invcounters[id].push(i);
        }
    }

    //Save the original color to easily return to it later.
    for(let i = 0; i < rainbowhover.length; i++) {
        originalcolors[i] = rainbowhover[i].style.color;
    }

    // Add event listeners for every item classed foxrainbowhover. If it has a data tag called foxrainbowhover with an id inside it instead uses that to start the hover effect.
    for(let id = 0; id < rainbowhover.length; id++) {
        //Checks if the passed along id exists or not. If it doesn't, execute regularly. If it does, execute with hover on a different element.
        if(rainbowhover[id].dataset.foxrainbowhover) {
            let hoverelement = document.getElementById(rainbowhover[id].dataset.foxrainbowhover);

            hoverelement.addEventListener("mouseenter", function startanimation() {

                hoverinterval[id] = setInterval(() => {

                    for(let i = 0; i < rainbowelements[id].length; i++) {
                        rainbowelements[id][i].style.color = 'hsl(' + (hovercounters[id][i] + Math.floor(i * hoverspeed)) + ', 100%, 70%';
                        hovercounters[id][i]++;
                    }
                }, 7);
            }, false);

            hoverelement.addEventListener("mouseleave", function stopanimation() {
                console.log("gay1");
                clearInterval(hoverinterval[id]);
                for(let i = 0; i < rainbowelements[id].length; i++) {
                    rainbowelements[id][i].style.color = originalcolors[id];
                }
            }, false);

        }
        else {
            rainbowhover[id].addEventListener("mouseenter", function startanimation() {

                hoverinterval[id] = setInterval(() => {

                    for(let i = 0; i < rainbowelements[id].length; i++) {
                        rainbowelements[id][i].style.color = 'hsl(' + (hovercounters[id][i] + Math.floor(i * hoverspeed)) + ', 100%, 70%';
                        hovercounters[id][i]++;
                    }
                }, 7);
            }, false);

            rainbowhover[id].addEventListener("mouseleave", function stopanimation() {
                clearInterval(hoverinterval[id]);
                for(let i = 0; i < rainbowelements[id].length; i++) {
                    console.log("gay1");
                    rainbowelements[id][i].style.color = originalcolors[id];
                }
            }, false);
        }


    }









    //Same code as before. Will make it way DRY-er later, but for now, this'll have to do.

    for(let i = 0; i < invertedhover.length; i++) {
        originalinvcolors[i] = invertedhover[i].style.color;
    }

    let startinterval = [];

    // Add event listeners for every item classed foxrainbowhoverinv.
    for(let id = 0; id < invertedhover.length; id++) {

        startinterval[id] = setInterval(() => {

            for(let i = 0; i < rainbowinvelements[id].length; i++) {
                rainbowinvelements[id][i].style.color = 'hsl(' + (invcounters[id][i] + Math.floor(i * hoverspeed)) + ', 100%, 70%';
                invcounters[id][i]++;
            }
        }, 7);

        //Checks if the passed along id exists or not. If it doesn't, execute regularly. If it does, execute with hover on a different element.
        if(invertedhover[id].dataset.foxrainbowhover) {
            let hoverelement = document.getElementById(invertedhover[id].dataset.foxrainbowhover);

            hoverelement.addEventListener("mouseenter", function stopanimation() {
                clearInterval(startinterval[id]);
                clearInterval(hoverinvinterval[id]);
                for(let i = 0; i < rainbowinvelements[id].length; i++) {
                    rainbowinvelements[id][i].style.color = originalinvcolors[id];
                }

            }, false);

            hoverelement.addEventListener("mouseleave", function startanimation() {
                hoverinvinterval[id] = setInterval(() => {

                    for(let i = 0; i < rainbowinvelements[id].length; i++) {
                        rainbowinvelements[id][i].style.color = 'hsl(' + (invcounters[id][i] + Math.floor(i * hoverspeed)) + ', 100%, 70%';
                        invcounters[id][i]++;
                    }
                }, 7);
            }, false);

        }
        else {
            invertedhover[id].addEventListener("mouseenter", function stopanimation() {

                clearInterval(startinterval[id]);
                clearInterval(hoverinterval[id]);
                for(let i = 0; i < rainbowinvelements[id].length; i++) {
                    rainbowinvelements[id][i].style.color = originalinvcolors[id];
                }
            }, false);

            invertedhover[id].addEventListener("mouseleave", function startanimation() {
                hoverinterval[id] = setInterval(() => {

                    for(let i = 0; i < rainbowinvelements[id].length; i++) {
                        rainbowinvelements[id][i].style.color = 'hsl(' + (invcounters[id][i] + Math.floor(i * hoverspeed)) + ', 100%, 70%';
                        invcounters[id][i]++;
                    }
                }, 7);
            }, false);
        }


    }



        //Hover but for backgrounds.

        let rainbowhoverbg = document.getElementsByClassName('foxrainbowhoverbg');
        let hoverbginterval = [];
        let hoverbgcounter = 0;
        let originalbgcolors = [];

        //Save the original color to easily return to it later, but for backgrounds.
        for(let i = 0; i < rainbowhoverbg.length; i++) {
            originalbgcolors[i] = rainbowhoverbg[i].style.backgroundColor;
        }

        for(let id = 0; id < rainbowhoverbg.length; id++) {
            rainbowhoverbg[id].addEventListener("mouseenter", function startbganimation() {

                hoverbginterval[id] = setInterval(() => {
                        rainbowhoverbg[id].style.backgroundColor = 'hsl(' + (hoverbgcounter + Math.floor(id * hoverbackgroundspeed)) + ', 100%, 70%';
                        hoverbgcounter++;
                }, 15);
            }, false);

            rainbowhoverbg[id].addEventListener("mouseleave", function stopbganimation() {
                clearInterval(hoverbginterval[id]);
                rainbowhoverbg[id].style.backgroundColor = originalbgcolors[id];
            }, false); 
        }
})()


//Actually do the rainbow effect. Text only.
function textcolorchange(rainbowarray, rainbowspeed) {
    let counterarray = [];

    for(let i = 0; i < rainbowarray.length; i++) {
        counterarray[i] = 0 + i;
    }
    setInterval(() => {

        for(let i = 0; i < rainbowarray.length; i++) {
            rainbowarray[i].style.color = 'hsl(' + (counterarray[i] + Math.floor(i * rainbowspeed)) + ', 100%, 70%';
            if(counterarray[i] == 360)
            {
                counterarray[i] = 0;
            }
            else {
                counterarray[i]++;
            }
        }
    }, 7);
}


//Prepare text for having its color changed by splicing it up into individual bits
//and taking it out of the HTMLcollection.

function spanArrayContents(classes) {

    let spans = [];
    let chars = [];

    for(let i = 0; i < classes.length; i++) {
        chars.push(classes[i].innerText.split(""));
        classes[i].innerHTML = chars[i].map(function(char) {
            return '<span>' + char + "</span>";
        }).join('');

    }

    for(let i = 0; i < classes.length; i++) {
        let temphtmlcollection = [].slice.call(classes[i].children)
        for(let j = 0; j < temphtmlcollection.length; j++) {
             spans.push(temphtmlcollection[j]);
        }
    }
    return spans;
}

//Same as above except for single elements instead of an array of elements. 
//Helps split them up and give them an ID before they're taken to the slaughterhouse.

function spanElementContents(element) {
    let spans = [];
    let chars = [];

    chars.push(element.innerText.split(""));
    for(let i = 0; i < chars.length; i++){
        element.innerHTML = chars[i].map(function(char) {
            return '<span>' + char + "</span>";
        }).join('');
    }



    let temphtmlcollection = [].slice.call(element.children)
    for(let j = 0; j < temphtmlcollection.length; j++) {
         spans.push(temphtmlcollection[j]);
    }
    return spans;
}