Skip to content

Instantly share code, notes, and snippets.

@qsysmine
Last active October 1, 2019 01:43
Show Gist options
  • Save qsysmine/c99ba1423ded365a268c to your computer and use it in GitHub Desktop.
Save qsysmine/c99ba1423ded365a268c to your computer and use it in GitHub Desktop.
Cheat on Scatter in quizlet by pressing C on a microscatter [small screen] game. This does not work and has not for around nine months but it did work when first uploaded.
// ==UserScript==
// @name MicroScatter Cheater Script
// @namespace http://qsysmine.tk/
// @version 0.1
// @description Press C on microscatter to win
// @author qsysmine
// @match https://quizlet.com/*/microscatter
// @grant none
// ==/UserScript==
(function(){
if (window.jQuery !== undefined) {
doStuff(jQuery);
} else {
var script = document.createElement('script');
script.src = 'https://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js';
document.getElementsByTagName('head')[0].appendChild(script);
var interval = setInterval(function(){
if (window.jQuery) {
clearInterval(interval);
var JQ = jQuery.noConflict(true);
doStuff(JQ);
}
}, 100);
}
function doStuff($) { var cheatTime = 0;
window.setCheatTime = function(mils) {
cheatTime = mils;
};
var $ = window.jQuery;
var cheat = function() {
var ids = [];
var checkhasid = function(id) {
for(var i in ids) {
if(ids[i] == id) {
return true;
}
}
return false;
};
setTimeout(function() {
$('.cell').each(function(index){
if(checkhasid($(this).attr("data-id"))) $('[data-id="' + $(this).attr("data-id") + '"]').trigger("click")
if(!checkhasid($(this).attr("data-id"))) ids.push($(this).attr("data-id"));
});
}, cheatTime);
};
window.startWithTime = function(mils) {
setCheatTime(mils);
$('#start').trigger("click");
cheat();
};
var z = 0;
$('*').keyup(function(e) {
if(e.keyCode == 67 && z == 0 && $('#cells').hasClass("started")) {z = 1; cheat();}
}); }
})();
@CrackofShips
Copy link

This hack doesn't let me do it, it says "The ($) isn't a function."

@JustinTechno
Copy link

Is it possible to set a specific time the hack activates? I have got it working but it is too obvious I am a hacker at school. Plz help. I'm not a programmer btw...

@AndrewYatzkan
Copy link

As of recently this script doesn't work anymore, I made a (very terrible) new version of this (that works like 80% of the time).
Here it is!

@BEEBOPUKAMAKA
Copy link

PLZ HELP ME

I've been looking everywhere for a code that currently works, but have not found anything, and most videos either lead me here or to Greasy Fork. Does anyone have a script that will definitely work?

Thanks

@AndrewYatzkan
Copy link

@syanotome
Copy link

try

function eventFire(el, etype){
if (el.fireEvent) {
el.fireEvent('on' + etype);
} else {
var evObj = document.createEvent('Events');
evObj.initEvent(etype, true, false);
el.dispatchEvent(evObj);
}
}
terms = Quizlet.matchModeData.terms;
wordDefinition = {};
definitionWord = {};
for(let i = 0; i < terms.length; i++){
wordDefinition[terms[i].word] = terms[i].definition;
definitionWord[terms[i].definition] = terms[i].word;
}
firstClick = true;
document.onclick = ()=>{
firstClick = false;
setTimeout(()=>{
// Magic for loop instead
// checks if the combination is right before clicking :)
for(let i=0;i<document.querySelector(".MatchModeQuestionGridBoard-tiles").childNodes.length;i++) {
console.log("i = "+i);
// click it if its unclicked
if(document.querySelector(".MatchModeQuestionGridBoard-tiles").childNodes[0].childNodes.length == 0 || document.querySelector(".MatchModeQuestionGridBoard-tiles").childNodes[1].childNodes[0].className == "MatchModeQuestionGridTile is-selected"){
console.log("Already clicked " + i);
} else {
let word = document.querySelector(".MatchModeQuestionGridBoard-tiles").childNodes[i].childNodes[0].childNodes[0].childNodes[0].childNodes[0].innerHTML.replace(//mig, '');
let translatedWord;
if(wordDefinition[word]){
translatedWord = wordDefinition[word];
} else if(definitionWord[word]){
translatedWord = definitionWord[word];
}
// console.log(translatedWord);
// find another word in the same dataset ID and click that as well
for(let o = 0; o < document.querySelector(".MatchModeQuestionGridBoard-tiles").childNodes.length; o++) {
// console.log("o = " + o );
if(document.querySelector(".MatchModeQuestionGridBoard-tiles").childNodes[o].innerHTML.includes(translatedWord)) {
let x = i;
setTimeout(()=>{
console.log("Found word pair: "+translatedWord+":"+word);
eventFire(document.querySelector(".MatchModeQuestionGridBoard-tiles").childNodes[o].childNodes[0], "pointerdown");
setTimeout(()=>{
eventFire(document.querySelector(".MatchModeQuestionGridBoard-tiles").childNodes[x].childNodes[0], "pointerdown");
},00);
},i*300);
}
}
}
}
},500);
};

// brute force, they now penalize faults so this is shit
/*
setInterval(function() {
var dwfg = Math.floor(Math.random() * 16);
// console.log(document.getElementById("cells").childNodes[dwfg].getAttribute("data-type"));
if(document.getElementById("cells").childNodes[dwfg].className == "cell long touching correct" || document.getElementById("cells").childNodes[dwfg].className == "cell long touching touched"){
} else {
eventFire(document.querySelector("#cells").childNodes[dwfg], "click");
}
}, 1);
*/
setInterval(function() {
//eventFire(document.querySelector("body > div:nth-child(4) > div > div.UIModal.is-open > div > div > div.HighscoresMessage > div.UIDiv.HighscoresMessage-button > button"), "click");
}, 2000);

@theonlytruegod
Copy link

theonlytruegod commented Sep 27, 2018

try this
https://gist.github.com/theonlytruegod/1d61841f3294f419bbe8b800143deba1
my best is 0.5 seconds. (I got 0.0 seconds but it said It will not save the score because It knows I cheated)

@unknown166
Copy link

hack

@admiraloldguy1122
Copy link

the $ is what is now being refered to by quizlet as

@QuizletIsTheWorst
Copy link

bro, nice

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment