RebeLM00D

made with rebelhands

You will need to install an extension such as Tampermonkey, Greasemonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install a user script manager extension to install this script.

(I already have a user script manager, let me install it!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(I already have a user style manager, let me install it!)

Author
GekiHossain
Daily installs
0
Total installs
492
Ratings
0 0 0
Version
2
Created
2023-12-30
Updated
2023-12-30
Size
22.7 KB
License
MIT
Applies to

// ==UserScript==
// @name RebeLM00D
// @namespace RebeLM00D
// @version 2
// @description made with rebelhands
// @author @gekihoss
// @license MIT
// @match *://moomoo.io/*
// @match *://sandbox.moomoo.io/*
// @match *://dev.moomoo.io/*
// @require https://greasyfork.org/scripts/423602-msgpack/code/msgpack.js?version=912797
// @require http://code.jquery.com/jquery-3.3.1.min.js
// @require https://code.jquery.com/ui/1.12.0/jquery-ui.min.js
// @require https://cdnjs.cloudflare.com/ajax/libs/jquery-confirm/3.3.0/jquery-confirm.min.js
// @require https://greasyfork.org/scripts/456235-moomoo-js/code/MooMoojs.js?version=1144167
// @require https://greasyfork.org/scripts/478839-moomoo-io-packet-code/code/MooMooio%20Packet%20Code.js?version=1274028
// @grant none
// @icon https://cdn.discordapp.com/avatars/1131925981460975676/36b51f984147c8b907af0a3dcb834853.png?size=4096
// @run-at document-start
// @downloadURL https://update.greasyfork.org/scripts/482932/myMod%202.user.js
// @updateURL https://update.greasyfork.org/scripts/482932/myMod%202.meta.js
// ==/UserScript==
var onWeapon;
document.getElementById("enterGame").addEventListener('click', autohide);
function autohide(){
$("#ot-sdk-btn-floating").hide();
}
$("#moomooio_728x90_home").parent().css({display: "none"});
document.getElementById('linksContainer2').innerHTML = ' none ' ;
document.getElementById('gameName').innerHTML = 'RebeLM00D';
document.getElementById('loadingText').innerHTML = 'Wait or im gonna fuck ur mother'
document.getElementById('diedText').innerHTML = "U DIED, REMIND REBEL HE NEVER LOSE!";
document.getElementById('diedText').style.color = "#ffffff";
document.title = 'All those people sucks';
document.getElementById("leaderboard").append ('All those people sucks');
$("#mapDisplay").css({background: `url('https://i.pinimg.com/originals/97/57/67/975767e67adc18ad53d5a1a687cb6421.gif')`});
document.getElementById("storeHolder").style = "height: 1200px; width: 450px;";
document.getElementById("promoImgHolder").remove();
document.querySelector("#pre-content-container").remove(); //ANTI AD
$('#itemInfoHolder').css({'top':'1050px',
'left':'15px'
});
$("#youtuberOf").remove();
$("#adCard").remove();
$("#mobileInstructions").remove();
$("#downloadButtonContainer").remove();
$("#mobileDownloadButtonContainer").remove();
$(".downloadBadge").remove();
let lastDamageTick = 0;
let HP = 100;
let gameTick = 0;
var shame = 0;
let shameTime,
damageTimes = 0;
let friendlyMillLocs = [];
let EnemyTrapLocs = [];
let nearestFriendlyMill;
let nearestFriendlyMillX;
let nearestFriendlyMillY;
let NearEnemyTrapLocs;
let EnemyTrapLocsX;
let EnemyTrapLocsY;
let nearestFriendlyMillScale;
let isNextToFriendlyMill = false;
function removeArraysWithValue(arr, valueToRemove) {
for (let i = arr.length - 1; i >= 0; i--) {
const innerArray = arr[i];
if (innerArray.includes(valueToRemove)) {
arr.splice(i, 1);
}
}
}
let movementDirection
let millCount = 0;
let nearestRandomObjectX;
let nearestRandomObjectY;
let mouseX;
let mouseY;
let width;
let height;
setInterval(() => {
if(hatToggle == 1) {
if(oldHat != normalHat) {
hat(normalHat);
console.log("Tried. - Hat")
}
if(oldAcc != normalAcc) {
acc(normalAcc);
console.log("Tried. - Acc")
}
oldHat = normalHat;
oldAcc = normalAcc
}
}, 25);
function normal() {
hat(normalHat);
acc(normalAcc);
}
function aim(x, y){
var cvs = document.getElementById("gameCanvas");
cvs.dispatchEvent(new MouseEvent("mousemove", {
clientX: x,
clientY: y
}));
}
let coreURL = new URL(window.location.href);
window.sessionStorage.force = coreURL.searchParams.get("fc");
let trap_a = null;
let intrap = false;
let trapid = null;
var antitrap = false;
var isEnemyNear;
var primary;
var secondary;
var foodType;
var wallType;
var spikeType;
var millType;
var mineType;
var boostType;
var turretType;
var spawnpadType;
var autoaim = false;
var autoprimary = false;
var autosecondary = false;
var tick = 1;
var oldHat;
var oldAcc;
var enemiesNear;
var normalHat;
var normalAcc;
var ws;
var msgpack5 = msgpack;
var boostDir;
let myPlayer = {
id: null,
x: null,
y: null,
dir: null,
object: null,
weapon: null,
clan: null,
isLeader: null,
hat: null,
accessory: null,
isSkull: null
};
let healSpeed = 50;
var messageToggle = 0;
var clanToggle = 0;
let healToggle = 2;
let hatToggle = 1;
var antiInsta = true;
document.msgpack = msgpack;
function n(){
this.buffer = new Uint8Array([0]);
this.buffer.__proto__ = new Uint8Array;
this.type = 0;
}
WebSocket.prototype.oldSend = WebSocket.prototype.send;
WebSocket.prototype.send = function(m){
if (!ws){
document.ws = this;
ws = this;
socketFound(this);
}
this.oldSend(m);
};
function biomeHat() {
if (myPlayer.y < 2400) {
hat(6);
} else {
if (myPlayer.y > 6850 && myPlayer.y < 7550) {
hat(6);
} else {
hat(6);
}
}
//acc(11);
}
function socketFound(socket){
socket.addEventListener('message', function(message){
handleMessage(message);
});
}
function handleMessage(m){
let temp = msgpack5.decode(new Uint8Array(m.data));
let data;
if(temp.length > 1) {
data = [temp[0], ...temp[1]];
if (data[1] instanceof Array){
data = data;
}
} else {
data = temp;
}
let item = data[0];
if(!data) {return};
update();
if (item == "C" && myPlayer.id == null){
myPlayer.id = data[1];
}
if (item == "a") {
for(let i = 0; i < data[1].length / 13; i++) {
let playerInfo = data[1].slice(13*i, 13*i+13);
if(playerInfo[0] == myPlayer.id) {
myPlayer.x = playerInfo[1];
myPlayer.y = playerInfo[2];
myPlayer.dir = playerInfo[3];
myPlayer.object = playerInfo[4];
myPlayer.weapon = playerInfo[5];
myPlayer.clan = playerInfo[7];
myPlayer.isLeader = playerInfo[8];
myPlayer.hat = playerInfo[9];
myPlayer.accessory = playerInfo[10];
myPlayer.isSkull = playerInfo[11];
} else if(playerInfo[7] != myPlayer.clan || playerInfo[7] === null) {
enemiesNear.push(playerInfo);
}
}
}
update();
if (item == "H") {
for(let i = 0; i < data[1].length / 8; i++) {
let info = data[1].slice(8*i, 8*i+8);
if(info[6] == millType && info[7] == myPlayer.id){
friendlyMillLocs.push(info)
}
if(info[7] == myPlayer.id){
onWeapon = true;
}
}
}
update();
if(item == "Q"){
removeArraysWithValue(friendlyMillLocs, data[1])
}
update();
if(item == "R"){
removeArraysWithValue(friendlyMillLocs, data[1])
}
update();
if(item == "S"){
if(data[1] == 3){
millCount = data[2];
}
}
update();
if(friendlyMillLocs){
nearestFriendlyMill = friendlyMillLocs.sort((a,b) => dist(a, myPlayer) - dist(b, myPlayer))[0];
if(nearestFriendlyMill){
nearestFriendlyMillX = nearestFriendlyMill[1]
nearestFriendlyMillY = nearestFriendlyMill[2]
nearestFriendlyMillScale = nearestFriendlyMill[4]
}
}
if(Math.sqrt(Math.pow((myPlayer.y-nearestFriendlyMillY), 2) + Math.pow((myPlayer.x-nearestFriendlyMillX), 2)) < nearestFriendlyMillScale + 100) {
console.log(true)
isNextToFriendlyMill = true;
//isNextToFriendlyMill = false;
} else {
isNextToFriendlyMill = false;
}
WebSocket.prototype.send = function(m){
let xcc = new Uint8Array(m);
this.oldSend(m);
let realData = {};
let realInfo = msgpack5.decode(xcc);
if (realInfo[1] instanceof Array){
realData.data = [realInfo[0], ...realInfo[1]]
}
let rd0 = realData.data[0];
let rd1 = realData.data[1];
let rd2 = realData.data[2]

if(rd0 == 'a'){
movementDirection = rd1
}
};
isEnemyNear = false;
if (myPlayer.hat == 45 && shame) shameTime = 30000;
if (myPlayer.hat == 45 && shame) shame = 30000;
if (data[0] == "33") {
gameTick++;
}
if(item == "O" && data[1] == myPlayer.id) {
(gameTick = 0);
(lastDamageTick = 0);
(shame = 0);
(HP = 100);
(shameTime = 0);
if (item == "h" && data[1] == myPlayer.id) {
let damage = HP - data[2];
HP = data[2];
if (damage <= -1) {
damageTimes++;
if (!lastDamageTick) return;
let healTime = gameTick - lastDamageTick;
lastDamageTick = 0;
if (healTime <= 1) {
shame = shame++;
} else {
shame = Math.max(0, shame - 2);
}
} else {
lastDamageTick = gameTick;
}
}
if (data[2] < 100 && data[2] >= 0) {
let c;
if (data[2] < 99 && data[2] > 78) { c = 1;
for (let i=0;i {
doNewSend(["c", [0, 6, 0]]);
}, 200);
}
if (data[2] < 78 && data[2] > 60) { c = 2;
for (let i=0;i 30) { c = 3;
for (let i=0;i 0){ c = 4;
for (let i=0;i 0 && myPlayer.hat !== 6) {//antiinsta no sold
doNewSend(["c", [0, 22, 0]]);
place(foodType);
setTimeout(() => {
place(foodType);
}, 170);
setTimeout(() => {
doNewSend(["G", [primary, true]]);
doNewSend(["c", [0, 7, 0]]);
doNewSend(["d",[1]]);
place(foodType);
}, 760);
setTimeout( () => {
doNewSend(["c", [0, 6, 0]]);
doNewSend(["d",[0]]);
}, 1900);
}
if (data[2] < 51 && data[2] > 40 && myPlayer.hat == 6) {//antiinsta for pol
doNewSend(["c", [0, 22, 0]]);
place(foodType);
place(foodType);
setTimeout(() => {
place(foodType);
place(foodType);
}, 170);
setTimeout(() => {
doNewSend(["G", [primary, true]]);
doNewSend(["c", [0, 7, 0]]);
doNewSend(["d",[1]]);
}, 760);
setTimeout( () => {
doNewSend(["c", [0, 6, 0]]);
doNewSend(["d",[0]]);
}, 1900);
}
if (data[2] < 56 && data[2] > 50 && myPlayer.hat == 6) {//bullspam heal
doNewSend(["d",[1]]);
place(foodType);
place(spikeType, - toRad(45));
place(spikeType, + toRad(45));
doNewSend(["c", [0, 53, 0]]);
setTimeout(() => {
place(foodType);
place(foodType);
doNewSend(["c", [0, 6, 0]]);
doNewSend(["d",[0]]);
}, 133);
}
if (data[2] < 41 && data[2] > 0 && myPlayer.hat == !6) {
setTimeout(() => {
doNewSend(["c", [0, 6, 0]]);
place(foodType);
place(foodType);
}, 133);
place(foodType);
place(foodType);
place(spikeType);
doNewSend(["d",[1]]);
doNewSend(["c", [0, 7, 0]]);
doNewSend(["G", [primary, true]]);
doNewSend(["d",[1]]);
setTimeout(() => {
place(spikeType, + toRad(45));
doNewSend(["d",[1]]);
place(spikeType, - toRad(45));
doNewSend(["d",[1]]);
doNewSend(["c", [0, 53, 0]]);
doNewSend(["d",[0]]);
doNewSend(["c", [0, 11, 0]]);
},150);
setTimeout(() => {
doNewSend(["c", [0, 6, 0]]);
},300);
}
}
update();
};
function doNewSend(sender){
ws.send(new Uint8Array(Array.from(msgpack5.encode(sender))));
}
function acc(id) {
doNewSend(["c", [0, 0, 1]]);
doNewSend(["c", [0, id, 1]]);
}

function hat(id) {
doNewSend(["c", [0, id, 0]]);
}
function place(id, angle = Math.atan2(mouseY - height / 2, mouseX - width / 2)) {
doNewSend(["G", [id, null]]);
doNewSend(["d", [1, angle]]);
doNewSend(["d", [0, angle]]);
doNewSend(["G", [primary, true]]);
}

var repeater = function(key, action, interval) {
let _isKeyDown = false;
let _intervalId = undefined;

return {
start(keycode) {
if(keycode == key && document.activeElement.id.toLowerCase() !== 'chatbox') {
_isKeyDown = true;
if(_intervalId === undefined) {
_intervalId = setInterval(() => {
action();
if(!_isKeyDown){
clearInterval(_intervalId);
_intervalId = undefined;
}
}, interval);
}
}
},

stop(keycode) {
if(keycode == key && document.activeElement.id.toLowerCase() !== 'chatbox') {
_isKeyDown = false;
}
}
};


}

let automilling = false;
let automill = false;
var x,
y;
x = myPlayer.x;
y = myPlayer.y;
let angle = Math.atan2(y - myPlayer.y, x - myPlayer.x);
setInterval(()=>{
if(automill == true && isNextToFriendlyMill == false && millCount < 300 && automilling == false){
automilling = true;
doNewSend(["G",[millType, null]])
doNewSend(["d",[1, (movementDirection - 1.90)]])
doNewSend(["G",[myPlayer.weapon, true]])
doNewSend(["G",[millType, null]])
doNewSend(["d",[1, (movementDirection - 3.14)]])
doNewSend(["G",[myPlayer.weapon, true]])
doNewSend(["G",[millType, null]])
doNewSend(["d",[1, (movementDirection + 1.90)]])
doNewSend(["G",[myPlayer.weapon, true]])
automilling = false
}
}, 100);
let tankspam = false;
let tankspamming = false;
setInterval(()=>{
if(tankspam == true && tankspamming == false){
tankspamming = true;
doNewSend(["c", [0, 40, 0]]);
doNewSend(["d",[1]]);
setTimeout(() => {
doNewSend(["c", [0, 6, 0]]);
tankspamming = false
doNewSend(["d",[0]]);
},100);
}
},200);
const boostPlacer = repeater(70, () => {place(boostType)}, 50);
const spikePlacer = repeater(86, () => {place(spikeType)}, 50);
const placers = [boostPlacer, spikePlacer];
let prevCount = 0;
const handleMutations = mutationsList => {
for (const mutation of mutationsList) {
if (mutation.target.id === "killCounter") {
const count = parseInt(mutation.target.innerText, 10) || 0;
if (count > prevCount) {
doNewSend(["6", [ "GG Kills = " + count]])
prevCount = count;
}
}
}
};
const observer = new MutationObserver(handleMutations);
observer.observe(document, {
subtree: true,
childList: true
});
document.addEventListener('keydown', (e) => {
if (["allianceinput", 'chatbox', 'nameinput','storeHolder'].includes(document.activeElement.id.toLowerCase())) return null;
placers.forEach(t => {
t.start(e.keyCode);
});

if(e.keyCode == 78 && document.activeElement.id.toLowerCase() !== 'chatbox'){// N = Automill
automill = !automill
}

if(e.keyCode == 72 && document.activeElement.id.toLowerCase() !== 'chatbox'){// H = Turret/Teleporter
place(turretType, myPlayer.dir + toRad(45));
place(turretType, myPlayer.dir - toRad(45));
}
if(e.keyCode == 66 && document.activeElement.id.toLowerCase() !== 'chatbox'){// G = spawnpads
place(spawnpadType, myPlayer.dir + toRad(45));
place(spawnpadType, myPlayer.dir - toRad(45));
}
if (e.keyCode == 67) {
doNewSend(["c", [0, 53, 0]]);
setTimeout(() => {
doNewSend(["c", [0, 7, 0]]);
doNewSend(["G", [primary, true]]);
doNewSend(["d",[1]]);
}, 80)
setTimeout(() => {
doNewSend(["c", [0, 6, 0]]);
doNewSend(["d",[0]]);
place(spikeType, myPlayer.dir + toRad(45));
place(spikeType, myPlayer.dir - toRad(45));
place(spikeType, myPlayer.dir + toRad(135));
place(spikeType, myPlayer.dir - toRad(135));
}, 160);
}
if (e.keyCode == 16) {//booster hat
biomeHat()
}
if (e.keyCode == 81) {
place(foodType)
place(foodType)
place(foodType)
}
if(e.keyCode == 79 && document.activeElement.id.toLowerCase() !== 'chatbox'){// spiketick
place(boostType, myPlayer.dir + toRad(45));
place(boostType, myPlayer.dir - toRad(45));
place(boostType, myPlayer.dir + toRad(135));
place(boostType, myPlayer.dir - toRad(135));
}
if(e.keyCode == 32 && document.activeElement.id.toLowerCase() !== 'chatbox'){// spiketick
place(foodType)
place(spikeType);
doNewSend(["d",[1]]);
doNewSend(["c", [0, 7, 0]]);
doNewSend(["G", [primary, true]]);
doNewSend(["d",[1]]);
setTimeout(() => {
doNewSend(["c", [0, 53, 0]]);
},75);
setTimeout(() => {
doNewSend(["c", [0, 6, 0]]);
doNewSend(["d",[0]]);
place(foodType)
},150);
}
if(e.keyCode == 82 && document.activeElement.id.toLowerCase() !== 'chatbox'){// insta
doNewSend(["c", [0, 53, 0]]);
doNewSend(["G", [primary, true]]);
setTimeout(() => {
doNewSend(["c", [0, 7, 0]]);
doNewSend(["d",[1]]);
doNewSend(["d",[0]]);
},85);
setTimeout(() => {
place(foodType)
doNewSend(["G", [secondary, true]]);
doNewSend(["d",[1]]);
},170);
setTimeout(() => {
doNewSend(["d",[0]]);
doNewSend(["G", [primary, true]])
doNewSend(["c", [0, 6, 0]]);
},280);
}
})
document.addEventListener("mousedown", event => {
if(event.button == 2 && document.activeElement.id.toLowerCase() !== 'chatbox'){//tankspam
tankspam = !tankspam
}
});
document.addEventListener('keyup', (e) => {
placers.forEach(t => {
t.stop(e.keyCode);
});
/*if (e.keyCode == 71) {
setTimeout(() => {
doNewSend(["33", [null]]);
boostDir = null;
}, 10);
}*/
})
function isElementVisible(e) {
return (e.offsetParent !== null);
}

function toRad(angle) {
return angle * 0.01745329251;
}

function dist(e, o) {
return e && o
? Math.sqrt((e.x - o.x) ** 2 + (e.y - o.y) ** 2)
: null
};
function update() {
for (let i=0;i<9;i++){
if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))){
primary = i;
}
}

for (let i=9;i<16;i++){
if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))){
secondary = i;
}
}

for (let i=16;i<19;i++){
if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))){
foodType = i - 16;
}
}

for (let i=19;i<22;i++){
if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))){
wallType = i - 16;
}
}

for (let i=22;i<26;i++){
if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))){
spikeType = i - 16;
}
}

for (let i=26;i<29;i++){
if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))){
millType = i - 16;
}
}

for (let i=29;i<31;i++){
if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))){
mineType = i - 16;
}
}

for (let i=31;i<33;i++){
if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))){
boostType = i - 16;
}
}

for (let i=33;i<36;i++){
if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))){
turretType = i - 16;
}
}

for (let i=36;i<37;i++){
if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))){
spawnpadType = i - 16;
}
}

for (let i=37;i<39;i++){
if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))){
turretType = i - 16;
}
}
}

(function() {
'use strict';
alert("Project Anti Clown by RebeL is running!");
alert("GF-HF");
document.title = "RebeLM00D";
document.head.innerHTML += `