BreakoutEDU answers script

alerts or prints the answers whenever you open a lock.

  1. // ==UserScript==
  2. // @name BreakoutEDU answers script
  3. // @namespace http://tampermonkey.net/
  4. // @version 2024-09-23
  5. // @description alerts or prints the answers whenever you open a lock.
  6. // @author PowfuArras
  7. // @match https://student.breakoutedu.com/
  8. // @icon https://www.google.com/s2/favicons?sz=64&domain=breakoutedu.com
  9. // @grant none
  10. // @license GNU AGPLv3
  11. // ==/UserScript==
  12.  
  13. (function () {
  14. "use strict";
  15.  
  16. const nativeOpen = XMLHttpRequest.prototype.open;
  17. XMLHttpRequest.prototype.open = function (method, url, ...rest) {
  18. if (url.includes("student.breakoutedu.com/game-with-locks/play/lock-of-the-day")) {
  19. this.addEventListener('load', function () {
  20. const response = this.responseText;
  21. const data = JSON.parse(response);
  22. if (data.payload.gameLocks.length !== 1) {
  23. console.log("Not supported. Printing answers to console.");
  24. console.table(data.payload.gameLocks.map(lock => lock.ans));
  25. }
  26. alert(`The answer is:\n\n${data.payload.gameLocks[0].ans.replaceAll(",", ", ")}`);
  27. });
  28. }
  29. return nativeOpen.call(this, method, url, ...rest);
  30. };
  31. })();