Krunker Junker was reported 2021-06-07 by Abdurazaaq Mohammed as an unauthorized copy of Krunker Junker.

Krunker Junker uses the GNU General Public License v3.0 only license. Visit tldrlegal.com for help understanding what this license means.

Script License Created Updated
Reported Krunker Junker GPL-3.0 2021-06-07 01:24:06 UTC 2021-06-07 01:24:05 UTC
Original Krunker Junker GPL-3.0 2021-04-02 10:06:56 UTC 2021-06-03 02:07:31 UTC
  • // ==UserScript==
  • // @name Krunker Junker
  • // @author SkidLamer
  • -// @source https://github.com/e9x/kru
  • +// @source https://github.com/e9x/kru/tree/master/junker
  • // @description Junk in Your Krunk Guaranteed
  • // @version 1.0
  • // @license gpl-3.0
  • // @namespace https://greasyfork.org/users/704479
  • // @supportURL https://e9x.github.io/kru/inv/
  • -// @extracted Thu, 03 Jun 2021 02:02:26 GMT
  • +// @extracted Sun, 06 Jun 2021 23:56:54 GMT
  • // @match *://krunker.io/*
  • // @match *://browserfps.com/*
  • +// @match *://linkvertise.com/*
  • // @run-at document-start
  • // @connect sys32.dev
  • // @connect githubusercontent.com
  • // @icon https://i.imgur.com/pA5e8hy.png
  • // @grant none
  • +// @noframes
  • // ==/UserScript==
  • // Donations Accepted
  • var Utils = __webpack_require__(/*! ../sploit/libs/utils */ "../sploit/libs/utils.js"),
  • + API = __webpack_require__(/*! ../sploit/libs/api */ "../sploit/libs/api.js"),
  • + Updater = __webpack_require__(/*! ../sploit/libs/updater.js */ "../sploit/libs/updater.js"),
  • + Main = __webpack_require__(/*! ./main */ "./main.js"),
  • utils = new Utils();
  • exports.script = 'https://raw.githubusercontent.com/e9x/kru/master/junker.user.js';
  • exports.krunker = utils.is_host(location, 'krunker.io', 'browserfps.com') && location.pathname == '/';
  • -exports.extracted = typeof 1622685746696 != 'number' ? Date.now() : 1622685746696;
  • +exports.extracted = typeof 1623023814936 != 'number' ? Date.now() : 1623023814936;
  • exports.api_url = 'https://api.sys32.dev/';
  • exports.hostname = 'krunker.io';
  • exports.mm_url = 'https://matchmaker.krunker.io/';
  • +exports.api = new API(exports.mm_url, exports.api_url),
  • +exports.updater = new Updater(exports.script, exports.extracted);
  • +
  • +exports.main = new Main();
  • +
  • /***/ }),
  • /***/ "./main.js":
  • this.eventHandlers();
  • - this.discord = { code: 'xwcM7zFfha', guild: {} };
  • + this.discord = { code: 'BdyvMgNYnQ', guild: {} };
  • utils.request('https://discordapp.com/api/v6/invite/' + this.discord.code + '?with_counts=true', "json", {cache: "no-store"}).then(json => {
  • console.log(json);
  • getWorldPosition: { regex: /var \w+=\w+\.camera\.(\w+)\(\);/, index: 1 },
  • mouseDownR: { regex: /this\.(\w+)=0,this\.keys=/, index: 1 },
  • maxHealth: { regex: /\.regenDelay,this\.(\w+)=\w+\.mode&&\w+\.mode\.\1/, index: 1 },
  • - xDire: { regex: /this\.(\w+)=Math\.lerpAngle\(this\.xDir2/, index: 1 },
  • - yDire: { regex: /this\.(\w+)=Math\.lerpAngle\(this\.yDir2/, index: 1 },
  • + xDire: { regex: /this\.(\w+)=Math\.lerpAngle\(this\.\w+\[1\]\.xD/, index: 1 },
  • + yDire: { regex: /this\.(\w+)=Math\.lerpAngle\(this\.\w+\[1\]\.yD/, index: 1 },
  • //xVel: { regex: /this\['x']\+=this\['(\w+)']\*\w+\['map']\['config']\['speedX']/, index: 1 },
  • yVel: { regex: /this\.(\w+)=this\.\w+,this\.visible/, index: 1 },
  • //zVel: { regex: /this\['z']\+=this\['(\w+)']\*\w+\['map']\['config']\['speedZ']/, index: 1 },
  • /*!*****************************!*\
  • !*** ../sploit/libs/api.js ***!
  • \*****************************/
  • -/***/ ((module) => {
  • +/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  • class API {
  • constructor(matchmaker_url, api_url){
  • + this.ls_key = 'ssundefined'; // 'ss' + this.extracted;
  • + this.ls_val = 'from_intent';
  • +
  • this.urls = {
  • matchmaker: matchmaker_url,
  • api: api_url,
  • api_url(ver, label, query){
  • return this.create_url(label, this.urls.api + 'v' + ver + '/', query);
  • }
  • + async do_fetch(type, url){
  • + return await(await fetch(url, { cache: 'no-store' }))[type]();
  • + }
  • + mm_fetch(type, ...url){
  • + return this.do_fetch(type, this.mm_url(...url));
  • + }
  • + api_fetch(type, ...url){
  • + return this.do_fetch(type, this.api_url(...url));
  • + }
  • media(cheat,constants,entries,d=['discord','github']){this.m=[d.map(a=>constants[a]),entries?entries.ui.value.some(a=>d[0]==a.name.toLowerCase()):cheat[d[0]].code]}
  • async source(){
  • - return await(await fetch(this.api_url(1, 'source'))).text();
  • + return await this.api_fetch('text', 1, 'source');
  • }
  • token(){
  • return new Promise(async (resolve, reject) => {
  • }else resolve(await token_res.json());
  • });
  • }
  • + /*poll(){
  • + var day = new Date().getUTCDay();
  • +
  • + if(localStorage.UTCDay != day){
  • + localStorage.UTCDay = day.
  • + location.assign('ad');
  • + }
  • + }*/
  • + async load_license(){
  • + location.replace(await this.api_fetch('text', 1, 'license'));
  • + }
  • + license(){
  • + if(navigator.userAgent.includes('Electron'))return true;
  • +
  • + var is_host = (url, ...hosts) => hosts.some(host => url.hostname == host || url.hostname.endsWith('.' + host));
  • +
  • + if(is_host(location, 'krunker.io', 'browserfps.com') && location.pathname == '/'){
  • + if(localStorage[this.ls_key] == this.ls_val)return true;
  • + else if(new URLSearchParams(location.search).has(this.ls_val)){
  • + localStorage[this.ls_key] = this.ls_val;
  • + history.replaceState(null, null, '/');
  • +
  • + return true;
  • + }else this.load_license();
  • + }else this.api_fetch('text', 1, 'license').then(url => is_host(location, 'linkvertise.com') && location.href.startsWith(url) && __webpack_require__(/*! ./linkvertise */ "../sploit/libs/linkvertise.js"));
  • + }
  • }
  • module.exports = API;
  • /***/ }),
  • +/***/ "../sploit/libs/linkvertise.js":
  • +/*!*************************************!*\
  • + !*** ../sploit/libs/linkvertise.js ***!
  • + \*************************************/
  • +/***/ (() => {
  • +
  • +
  • +
  • +var interval = setInterval,
  • + todor,
  • + todo = new Promise(resolve => todor = resolve),
  • + contr,
  • + cont = new Promise(resolve => contr = resolve),
  • + wait_for = (check, time = 50) => {
  • + return new Promise(resolve => {
  • + var interval,
  • + run = () => {
  • + try{
  • + if(check()){
  • + if(interval)clearInterval(interval);
  • + resolve();
  • + return true;
  • + }
  • + }catch(err){console.log(err)}
  • + };
  • +
  • + interval = run() || setInterval(run, time);
  • + });
  • + },
  • + continued;
  • +
  • +new MutationObserver(muts => muts.forEach(mut => [...mut.addedNodes].forEach(async node => {
  • + if(!node.classList)return;
  • +
  • + var is_progress = node.tagName == 'A',
  • + is_access = is_progress && node.textContent.includes('Free Access'),
  • + is_continue = is_progress && node.textContent.includes('Continue'),
  • + is_todo = node.classList.contains('todo'),
  • + is_web = is_todo && node.classList.contains('web');
  • +
  • + if(is_access){
  • + node.click();
  • + setTimeout(todor, 250);
  • + }else if(is_todo){
  • + await todo;
  • +
  • + // close articles
  • + if(is_web)setInterval(() => {
  • + for(var node of document.querySelectorAll('.modal .web-close-btn'))node.click();
  • + }, 100);
  • +
  • + window.setInterval = (callback, time) => interval(callback, time == 1e3 ? 0 : time);
  • +
  • + node.click();
  • +
  • + setTimeout(contr, 1000);
  • + }else if(is_continue){
  • + await cont;
  • + if(!continued)node.click(), continued = true;
  • + }
  • +}))).observe(document, {
  • + childList: true,
  • + subtree: true,
  • +});
  • +
  • +new MutationObserver((muts, observer) => muts.forEach(mut => [...mut.addedNodes].forEach(async node => {
  • + if(node.tagName == 'A')node.target = '_self';
  • +}))).observe(document, {
  • + attributes: true,
  • + attributeFilter: [ 'href' ],
  • +});
  • +
  • +var on_set = (obj, prop, callback) => {
  • + if(obj[prop])return callback(obj[prop]);
  • +
  • + Object.defineProperty(obj, prop, {
  • + set(value){
  • + Object.defineProperty(obj, prop, { value: value, writable: true });
  • + callback(value);
  • + return value;
  • + },
  • + configurable: true,
  • + });
  • + },
  • + ons = service => {
  • + console.log(service);
  • +
  • + on_set(service, 'webService', web => {
  • + console.log('web service:', web);
  • +
  • + web.webCounter = 0;
  • + });
  • +
  • + on_set(service, 'ogadsCountdown', () => {
  • + console.log('ogads service:', service);
  • +
  • + var oredir = service.redirect;
  • +
  • + service.redirect = () => {
  • + service.link.type = 'DYNAMIC';
  • + setTimeout(() => oredir.call(service), 100);
  • + };
  • + });
  • +
  • + on_set(service, 'addonService', addon => {
  • + console.log('addon service:', addon);
  • +
  • + var installed = false;
  • +
  • + addon.alreadyInstalled = installed;
  • + addon.addonIsInstalled = () => installed;
  • + addon.handleAddon = () => {
  • + installed = true;
  • + addon.addonState = 'PENDING_USER';
  • + addon.checkAddon();
  • + };
  • + });
  • +
  • + on_set(service, 'adblockService', adblock => {
  • + console.log('adblock service:', adblock);
  • +
  • + Object.defineProperty(adblock, 'adblock', { get: _ => false, set: _ => _ });
  • + });
  • +
  • + on_set(service, 'videoService', video => {
  • + console.log('video service:', video);
  • +
  • + video.addPlayer = () => video.videoState = 'DONE';
  • + });
  • +
  • + on_set(service, 'notificationsService', notif => {
  • + console.log('notification service:', service);
  • +
  • + var level = 'default';
  • +
  • + notif.getPermissionLevel = () => level;
  • + notif.ask = () => {
  • + level = 'granted';
  • + notif.linkvertiseService.postAction('notification');
  • + }
  • + });
  • + };
  • +
  • +Object.defineProperty(Object.prototype, 'linkvertiseService', {
  • + set(value){
  • + Object.defineProperty(this, 'linkvertiseService', { value: value, configurable: true });
  • +
  • + ons(this);
  • +
  • + return value;
  • + },
  • + configurable: true,
  • +});
  • +
  • +/***/ }),
  • +
  • /***/ "../sploit/libs/updater.js":
  • /*!*********************************!*\
  • !*** ../sploit/libs/updater.js ***!
  • run();
  • }
  • - poll(){
  • - var day = new Date().getUTCDay();
  • -
  • - if(localStorage.getItem('UTCDay') != day){
  • - localStorage.setItem('UTCDay', day);
  • - location.assign('http://fumacrom.com/Q5Ka');
  • - }
  • - }
  • }
  • module.exports = Updater;
  • is_host(url, ...hosts){
  • return hosts.some(host => url.hostname == host || url.hostname.endsWith('.' + host));
  • }
  • - wait_for(check){
  • + wait_for(check, time){
  • return new Promise(resolve => {
  • var interval,
  • run = () => {
  • }catch(err){console.log(err)}
  • };
  • - interval = run() || setInterval(run, 50);
  • + interval = run() || setInterval(run, time || 50);
  • });
  • }
  • normal_radian(radian){
  • \******************/
  • -if(__webpack_require__(/*! ./consts */ "./consts.js").krunker){
  • - var Main = __webpack_require__(/*! ./main */ "./main.js"),
  • - API = __webpack_require__(/*! ../sploit/libs/api */ "../sploit/libs/api.js"),
  • - Updater = __webpack_require__(/*! ../sploit/libs/updater.js */ "../sploit/libs/updater.js"),
  • - constants = __webpack_require__(/*! ./consts.js */ "./consts.js"),
  • - api = new API(constants.mm_url, constants.api_url),
  • - updater = new Updater(constants.script, constants.extracted),
  • - main = new Main();
  • +var { krunker, updater, api, main, ...constants } = __webpack_require__(/*! ./consts */ "./consts.js");
  • +if(api.license()){
  • api.media(main,constants);
  • var sourcePromise = api.source(),

This report has been upheld by a moderator.

The concept of open source doesn't mean you can modify and publish code without proper attribution. The script should specify the URL, author, license of the original, describe the major changes you've made. After you fix and update your existing script, ask a moderator to undelete it.