// ==UserScript==
// @name Coolmath Hangman Script
// @namespace http://tampermonkey.net/
// @version 2024-04-27
// @description Coolmath Hangman auto solver and username bypasser
// @author You
// @match https://hangman-frontend.coolmathgames.com/*
// @match https://hangman-backend.coolmathgames.com/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=coolmathgames.com
// @license ISC
// @grant none
// ==/UserScript==
// Auto solve quick play + private games
const _call = Function.prototype.call;
Function.prototype.call = function(...args) {
const ret = _call.apply(this, args);
if (args[args.length - 1] === 'value' && !!args[0]?.value?.puzzleStatus && args[0].value.puzzleStatus.length && !!args[0].value.ableToPick) {
let letters = document.querySelector('div[class*="Pad_Pad"');
if (!letters) return ret;
const keys = {};
[...letters.children].forEach((x, i) => {
keys[String.fromCharCode(65 + i)] = () => { try { x.children[0].click() } catch {} };
});
const remaining = [...new Set(args[0].value.puzzleStatus.filter(x => x.type === 'underline').flatMap(x => x.value))];
if (keys[remaining[0]]) keys[remaining[0]]();
}
return ret;
}
// Auto solve local games
Object.defineProperty(Object.prototype, 'wordData', {
get() {
return this._wordData;
},
set(val) {
window.remaining = [...new Set(val.word.toUpperCase().split('').filter(x => x.charCodeAt(0) > 64 && x.charCodeAt(0) < 91))];
setTimeout(() => {
window.remaining.forEach(letter => {
window.app.screenGame.tryGuessLetter(letter)
});
}, 5000);
this._wordData = val;
},
});
// List of words not allowed in usernames, B64 encoded for obvious reasons
const wordFilterArr = [
"M3NvbWU=",
"M3dheQ==",
"NHNvbWU=",
"YWJvcnRpb24=",
"YWJ1c2U=",
"YWRkaWN0",
"YWRvbGVzY2VudA==",
"YWR1bHQ=",
"YW5hbA==",
"YW51cw==",
"YXJhYg==",
"YXJlb2xh",
"YXJpb2xh",
"YXJvdXNl",
"YXJzZQ==",
"YXNpYW4=",
"YXNwZXJn",
"YXNz",
"YXV0aXM=",
"YXpu",
"YmFja2Rvb3I=",
"YmFuZw==",
"YmFwdGlzdA==",
"YmFyZg==",
"YmFzdGFyZA==",
"YmJ3",
"YmRzbQ==",
"YmVhbmVy",
"YmVhc3RhbA==",
"YmVhc3RpYWw=",
"YmVhdA==",
"YmVhdHRoZW1lYXQ=",
"YmVhdmVy",
"YmVhdnI=",
"YmVlcg==",
"YmVzdGFs",
"YmVzdGlhbA==",
"YmlhdGNo",
"YmlibGU=",
"YmljdXJpb3Vz",
"YmljdXJpb3V6",
"Yml0Y2g=",
"Yml0ZW1l",
"YmxpbmQ=",
"Ymxvb2R5",
"Ymxvdw==",
"Ymxvd2pvYg==",
"Ymx1ZWJhbGw=",
"Ym9hbmc=",
"Ym9nYW4=",
"Ym9odW5r",
"Ym9sbG9jaw==",
"Ym9sbG9r",
"Ym9tYg==",
"Ym9uZGFnZQ==",
"Ym9uZXI=",
"Ym9uZw==",
"Ym9vYg==",
"Ym9vZ2Vy",
"Ym9vdHk=",
"YnJhenplcnM=",
"YnJlYXN0",
"YnJvdGhlbA==",
"YnVnZ2Vy",
"YnVra2FrZQ==",
"YnVybg==",
"YnV0Y2g=",
"YnV0dA==",
"YnV0dGVy",
"YnV0dHBsdWc=",
"Y2FtYWx0bw==",
"Y2FtZWx0b2U=",
"Y2FtZ2lybA==",
"Y2FycGV0bXVuY2g=",
"Y2F0aG9saWM=",
"NGNoYW4=",
"Zm91cmNoYW4=",
"Y2hhdHVyYmF0",
"Y2hlcnJ5",
"Y2hpY2s=",
"Y2hpbGQ=",
"Y2hpbmE=",
"Y2hpbmVzZQ==",
"Y2hpbms=",
"Y2hsYW0=",
"Y2hvYWQ=",
"Y2hvYWs=",
"Y2hvYXQ=",
"Y2hvZGU=",
"Y2hyaXN0",
"Y2lnYXI=",
"Y2lncw==",
"Y2xhbWRp",
"Y2xpdA==",
"Y2xvZ3dvZw==",
"Y29jYWluZQ==",
"Y29jaw==",
"Y29pdGFs",
"Y29pdHVz",
"Y29rZQ==",
"Y29tbWll",
"Y29tbXVu",
"Y29uZG9t",
"Y29vY2g=",
"Y29vbGll",
"Y29vbHk=",
"Y29vbg==",
"Y29wdWxhdA==",
"Y29ybmhvbGU=",
"Y293Z2lybA==",
"Y3JhYnM=",
"Y3JhY2s=",
"Y3JhcA==",
"Y3JlYW1waWU=",
"Y3JpbWluYWw=",
"Y3JvdGNo",
"Y3Vjaw==",
"Y3Vt",
"Y3VudA==",
"Y3liZXJzZXg=",
"Y3liZXJzbGltZQ==",
"ZGFobWVy",
"ZGFtbQ==",
"ZGFtbg==",
"ZGFya2ll",
"ZGFya3k=",
"ZGNr",
"ZGVhZA==",
"ZGVhcHRocm9hdA==",
"ZGVlcHRocm9hdA==",
"ZGVmZWNhdA==",
"ZGVnbw==",
"ZGVtb2NyYXQ=",
"ZGVtb24=",
"ZGV1c3RjaA==",
"ZGV2aWw=",
"ZGV2bA==",
"ZGljaw==",
"ZGlkZGxl",
"ZGlsZG8=",
"ZGluZ2xlYmVycnk=",
"ZGlzZWFzZQ==",
"ZGlzdHVyYmVk",
"ZGl4",
"ZG9nZ2ll",
"ZG9nZ3k=",
"ZG9taW5hdHI=",
"ZG9uZw==",
"ZG9vZG9v",
"ZG9va2ll",
"ZG9va3k=",
"ZG9vbQ==",
"ZG9wZQ==",
"ZG91YmxlcGVu",
"ZHJhZw==",
"ZHJ1Zw==",
"ZHJ1bms=",
"ZHZs",
"ZHh5",
"ZHlrZQ==",
"ZWF0bWU=",
"ZWJvbnk=",
"ZWNzdGFjeQ==",
"ZWNzdGFzeQ==",
"ZWdncGxhbnQ=",
"ZWphY3U=",
"ZW5lbWE=",
"ZW5lbXk=",
"ZW50aG8=",
"ZXJlY3Q=",
"ZXJla3Q=",
"ZXNjb3J0",
"ZXRobmlj",
"ZXhjcmVtZW50",
"ZXhlY3V0",
"ZXhwbG9zaW9u",
"ZXh0YWN5",
"ZXh0YXN5",
"ZmFjZXNpdA==",
"ZmFjaWFs",
"ZmFjaw==",
"ZmFlY2Vz",
"ZmFn",
"ZmFpdGg=",
"ZmFubnk=",
"ZmFueQ==",
"ZmFydA==",
"ZmFzY2hp",
"ZmFzY2k=",
"ZmF0c28=",
"ZmNr",
"ZmVhY2Vz",
"ZmVjZXM=",
"ZmVjaw==",
"ZmVsYXRpbw==",
"ZmVsY2g=",
"ZmVsY2hpbmc=",
"ZmVsbGF0ZQ==",
"ZmVsbGF0aW8=",
"ZmVsdGNo",
"ZmVtZG9t",
"ZmV0aXNo",
"ZmlsaXBp",
"ZmluZ2Vy",
"ZmluZ3I=",
"ZmlyaW5n",
"ZmlzdA==",
"Zmxhbmdl",
"Zmxhbmo=",
"Zmxhc2hlcg==",
"ZmxhdHVs",
"ZmxvZ2dpbmc=",
"Zmxvbw==",
"Zm5nZXI=",
"Zm5ncg==",
"Zm9r",
"Zm9uZGw=",
"Zm9vdGpvYg==",
"Zm9yZXNr",
"Zm9ybmljYXQ=",
"Zm91cnNvbWU=",
"Zm91cnR3ZW50",
"Zm91cnR3bnQ=",
"ZnJhdWQ=",
"ZnViYXI=",
"ZnVjaw==",
"ZnVkZ2U=",
"ZnVnbHk=",
"ZnVr",
"ZnVuZXJhbA==",
"ZnVycmllcw==",
"ZnV1",
"Z2FuZ2Jhbmc=",
"Z2FuZ2JuZw==",
"Z2VlemVy",
"Z2VuaXRhbA==",
"Z2VybWFu",
"Z2hldHRv",
"Z2lybHM=",
"Z2l2ZWhlYWQ=",
"Z2xvcnlob2xl",
"Z25nYm5n",
"Z29k",
"Z29sZGVuc2hvd2Vy",
"Z29ub3Jy",
"Z29vaw==",
"Z29yaWxsYQ==",
"Z3JlYXNlYmFsbA==",
"Z3Jpbmdv",
"Z3Jvc3M=",
"Z3Vu",
"aGFtYXM=",
"aGFuZGpvYg==",
"aGFyZG9u",
"aGFyZW0=",
"aGF0ZQ==",
"aGVsbA==",
"aGVudGFp",
"aGVyb2lu",
"aGVycGVz",
"aGV0ZXJv",
"aGlkZGVuY2Ft",
"aGlqYWNr",
"aGlsbGJpbGw=",
"aGluZG9v",
"aGluZHU=",
"aGl0bGVy",
"aG5kamI=",
"aG5kam9i",
"aG9l",
"aG9sZQ==",
"aG9taWNpZA==",
"aG9tbw==",
"aG9ua2U=",
"aG9va2Vy",
"aG9vdGVy",
"aG9ybmV5",
"aG9ybmk=",
"aG9ybnk=",
"aG9zZWpvYg==",
"aG9zdGFnZQ==",
"aG90dG90cm90",
"aG91c2V3aWZl",
"aHVtaWxpYXQ=",
"aHVza3k=",
"aHVzc3k=",
"aHVzdGxlcg==",
"aHltZW4=",
"aHltaWU=",
"aWRpb3Q=",
"aWxsZWdhbA==",
"aW5jZXN0",
"aW5maWRlbA==",
"aW50ZXJhY2lhbA==",
"aW50ZXJjb3Vycw==",
"aW50ZXJyYWNpYWw=",
"aXNpcw==",
"aXNyYWVs",
"amFja2luZw==",
"amVyaw==",
"amVzdXM=",
"amV3",
"amloYWQ=",
"amltZmlzaA==",
"amlzbQ==",
"aml6",
"am9pbnQ=",
"anVnZw==",
"anVnZ2Fsbw==",
"anVncw==",
"anVuZ2xlYnVubg==",
"a2FmZmly",
"a2FmZnJl",
"a2FmaXI=",
"a2FtYXN1dHJh",
"a2lrZQ==",
"a2lsbA==",
"a2luaw==",
"a2tr",
"a25pZmU=",
"a25vYmVuZA==",
"a25vY2tlcnM=",
"a29jaw==",
"a29uZHVt",
"a29vbg==",
"a290ZXg=",
"a3JhcA==",
"a3JhcHB5",
"a3VuaWw=",
"a3Vubmls",
"a3Vubm4=",
"a3lrZQ==",
"bGFiaWE=",
"bGFjdGF0ZQ==",
"bGFwZGFuY2U=",
"bGF0aW4=",
"bGVzYg==",
"bGV6",
"bGliZXJhbA==",
"bGliaWQ=",
"bGlja2Vy",
"bGlja21l",
"bGlja3I=",
"bGluZ2VyaWU=",
"bGlxcg==",
"bGlxdW9y",
"bG1hbw==",
"bG1mYW8=",
"bG9hZGVk",
"bG9saXRh",
"bG9vc2Vy",
"bG9zZXI=",
"bG92ZWJvbmU=",
"bG92ZWdvbw==",
"bG92ZWd1bg==",
"bG92ZWp1aWNl",
"bG92ZW11c2NsZQ==",
"bG92ZXBpc3RvbA==",
"bG92ZXJvY2tldA==",
"bHNk",
"bHViZWpvYg==",
"bHVjaWZlcg==",
"bHluY2g=",
"bWFjYWNh",
"bWFja2RhZGR5",
"bWFuaGF0ZXI=",
"bWFucGFzdGU=",
"bWFyaWp1YW5h",
"bWFyeWphbmU=",
"bWFzdGFiYXQ=",
"bWFzdGVyYmF0",
"bWFzdHJhYmF0",
"bWFzdHVyYmF0",
"bWF0dHJlc3NwcmluY2Vzcw==",
"bWNrZGFkZHk=",
"bWVhdGJlYXQ=",
"bWVhdHJhY2s=",
"bWV0aA==",
"bWV4aWNtZ2dlcg==",
"bWdnb3I=",
"bWlkZWFzdA==",
"bWlsZg==",
"bWlub3JpdGllcw==",
"bWlub3JpdHk=",
"bW9ja2V5",
"bW9ja2ll",
"bW9ja3k=",
"bW9mbw==",
"bW9reQ==",
"bW9sZXN0",
"bW9uZXlzaG90",
"bW9ua2V5",
"bW9vbmNyaWNrZXQ=",
"bW9ybW9u",
"bW9yb24=",
"bW9zbGVt",
"bW9zbGlt",
"bW90aGFm",
"bW90aGVyZg==",
"bXVmZg==",
"bXVsYXRv",
"bXVsYXR0bw==",
"bXVuY2g=",
"bXVuY2hlcg==",
"bXVudA==",
"bXVyZGVy",
"bXVzbGVt",
"bXVzbGlt",
"bmFnZ2Vy",
"bmFnZ3I=",
"bmFrZWQ=",
"bmFyY28=",
"bmFzdHk=",
"bmF6aQ==",
"bmVjcm9waGls",
"bmVncm8=",
"bmdncg==",
"bmlnZ2E=",
"bmlnZ2Vy",
"bmlnZ3Vy",
"bmlnbGV0",
"bmlnbm9n",
"bmlncg==",
"bmlncmU=",
"bmlwcGxl",
"bml0dGl0",
"bmxnZw==",
"bm9va2ll",
"bm9va3k=",
"bm9vbmVy",
"bnVkZQ==",
"bnVrZQ==",
"bnltcGhv",
"bnltcGhldHRl",
"b250aGVyYWc=",
"b3JhbA==",
"b3JnYXNpbQ==",
"b3JnYXNt",
"b3JnaWVz",
"b3JneQ==",
"b3JpZW50YWw=",
"b3JpZW50bA==",
"b3NhbWE=",
"cGFraXN0YW4=",
"cGFsZXN0aW4=",
"cGFuc2llcw==",
"cGFuc3k=",
"cGF5bw==",
"cGNrZXRwb29s",
"cGVhcmxuZWNrbGFjZQ==",
"cGVja2Vy",
"cGVkbw==",
"cGVlbg==",
"cGVlcHNob3c=",
"cGVnZ2luZw==",
"cGVuZHk=",
"cGVuZGVqbw==",
"cGVuZXRyYXQ=",
"cGVuaXM=",
"cGVudGhvdXNl",
"cGVyaW9k",
"cGVybG4=",
"cGVydg==",
"cGhpbGxpcGk=",
"cGh1aw==",
"cGltcA==",
"cGlzcw==",
"cGlzdG9s",
"cGl4aWU=",
"cGl4eQ==",
"cGxheWJveQ==",
"cGxheWdpcmw=",
"cGxtcA==",
"cG9ja2V0cG9vbA==",
"cG9sYWNr",
"cG9sb2Nr",
"cG9vbnRhbmc=",
"cG9vcA==",
"cG9vcndoaXRl",
"cG9waW1w",
"cG9ybg==",
"cG92ZXJ0eQ==",
"cHJlZ25hdA==",
"cHJlZ25hbnQ=",
"cHJpY2s=",
"cHJsbg==",
"cHJvbnByaW5jZXNz",
"cHJvc3RhdA==",
"cHJvc3RpdHV0",
"cHJvdGVzdGFudA==",
"cHViZQ==",
"cHViaWM=",
"cHVja2J1bm4=",
"cHVkYm95",
"cHVkZGJveQ==",
"cHVrZQ==",
"cHVuZXRhbmc=",
"cHVudGFuZw==",
"cHVzc3k=",
"cXVlZWY=",
"cXVlZXI=",
"cXVpY2tpZQ==",
"cmFjaWFs",
"cmFjaXN0",
"cmFnaGVhZA==",
"cmFwZQ==",
"cmFwaXN0",
"cmF3ZG9n",
"cmF3ZGF3Zw==",
"cmVhbGl0eWtpbmc=",
"cmVhcmVuZA==",
"cmVhcmVudHJ5",
"cmVjdHVt",
"cmVkbGlnaHQ=",
"cmVkbmVjaw==",
"cmVlZmVy",
"cmVlc3RpZQ==",
"cmVmdWdlZQ==",
"cmVpY2g=",
"cmVwdWJsaWNhbg==",
"cmV0YXJk",
"cmliYmVk",
"cmlnZ2Vy",
"cmltam9i",
"cmltbWluZw==",
"cm91bmRleWU=",
"c2FkaXM=",
"c2Fkb20=",
"c2F0YW4=",
"c2F1ZGk=",
"c2Npc3NvcmluZw==",
"c2NobG9uZw==",
"c2NyZXc=",
"c2Nyb3Q=",
"c2Nyb3R1bQ==",
"c2N1bQ==",
"c2VkdWNl",
"c2VkdWNpbmc=",
"c2VtZW4=",
"c2VwcHVrdQ==",
"c2VydmFudA==",
"c2V4",
"c2hhaXQ=",
"c2hhdA==",
"c2hoaGl0",
"c2hoaXQ=",
"c2hpdA==",
"c2hvb3Q=",
"c2lwaGlsaXM=",
"c2l4c2l4c2l4",
"c2l4dHluaW5l",
"c2thbms=",
"c2tpbmZsdXRl",
"c2t1bQ==",
"c2xhbnRleWU=",
"c2xhdWdodGVy",
"c2xhdmU=",
"c2xheQ==",
"c2xlZXpl",
"c2xpZGVpdGlu",
"c2xpbWViYWxs",
"c2xpbWVidWNrZXQ=",
"c2x1dA==",
"c21hY2s=",
"c21lZ21h",
"c21va2luZw==",
"c211dA==",
"c25hdGNo",
"c25pcGVy",
"c29kb20=",
"c29ub2Zh",
"c3Bhbms=",
"c3Blcm0=",
"c3BpY2s=",
"c3Bvb2dl",
"c3ByZWFkZWFnbGU=",
"c3B1bms=",
"c3RlcGJyb3RoZXI=",
"c3RlcGZhdGhlcg==",
"c3RlcGRhdWdodGVy",
"c3RlcHNpc3Rlcg==",
"c3RpZmZ5",
"c3RyYXBvbg==",
"c3RyaXA=",
"c3Ryb2tl",
"c3Ryb2tpbmc=",
"c3R1cGlk",
"c3Vjaw==",
"c3VpY2lkZQ==",
"c3dhbGxvdw==",
"c3dhc3Rpa2E=",
"c3dhdHN0aWth",
"c3dhdHp0aWth",
"c3dpbmdlcg==",
"c3lwaGlsaXM=",
"dGFtcG9u",
"dGVhdA==",
"dGVycm9y",
"dGVzdGVz",
"dGVzdGljbA==",
"dGVzdGljdWw=",
"dGhpY2tsaXBz",
"dGhpcmRleWU=",
"dGhpcmRsZWc=",
"dGhyZWVzb20=",
"dGhyZWVzb21l",
"dGhyZWV3YXk=",
"dGlua2xl",
"dGl0am9i",
"dGl0bGljaw==",
"dGl0bG92ZQ==",
"dGl0cw==",
"dGl0dGll",
"dGl0dHk=",
"dG50",
"dG9pbGV0",
"dG9uZ2V0aHJ1c3Q=",
"dG9uZ3Vl",
"dG9zc2Vy",
"dG93ZWxoZWFk",
"dHJhaWxlcnRyYXNo",
"dHJhbXA=",
"dHJhbm5pZQ==",
"dHJhbm55",
"dHJhbnN2ZXN0",
"dHJvamFu",
"dHVnam9i",
"dHVyZA==",
"dHVybm9u",
"dHdhdA==",
"dHdlcms=",
"dHdpbms=",
"dXBza2lydA==",
"dXJpbmFy",
"dXJpbmF0",
"dXJpbmU=",
"dXNhbWE=",
"dXRlcnVz",
"dmFnaW5h",
"dmF0aWNhbg==",
"dmlicmF0",
"dmlldGNvbmc=",
"dmlvbGVu",
"dmlyZ2lu",
"dm9taXQ=",
"dnVsdmE=",
"d2Fuaw==",
"d2F5c3RlZA==",
"d2F5c3Rpbmc=",
"d2VhcG9u",
"d2VlZA==",
"d2Vlbmll",
"d2Vlbnk=",
"d2Vld2Vl",
"d2VsZmFyZQ==",
"d2V0YmFjaw==",
"d2V0c3BvdA==",
"d2hhc2g=",
"d2hpZ2dlcg==",
"d2hpc2tleQ==",
"d2hpc2t5",
"d2hpdGVjaG9jb2xhdGU=",
"d2hpdGV0cmFzaA==",
"d2hpdGV5",
"d2hvcmU=",
"d2lnZ2Vy",
"d2luZQ==",
"d29tZW4=",
"d3N1enppZQ==",
"d3Rm",
"d3Vzcw==",
"eWVsbG93bWFu",
"eWVsbG93ZmV2ZXI=",
"eW9tYW0=",
"eW9tb20=",
"emlnYWJv",
"emlwcGVyaGVhZA==",
"Njk=",
"NDIw",
"NjY2",
"ODg="
].map(x => atob(x));
// Use any name in private matches
const _includes = String.prototype.includes;
String.prototype.includes = function () {
if (wordFilterArr.includes(arguments[0])) return false;
return _includes.apply(this, arguments);
}