A FoV script for the Diep.io game.
// ==UserScript==
// @name FoV Script
// @namespace http://tampermonkey.net/
// @version 1.0.0
// @description A FoV script for the Diep.io game.
// @author Altanis
// @match *://diep.io/*
// @match *://diep-io.rivet.game/*
// @license MIT
// @grant none
// ==/UserScript==
(function() {
'use strict';
/**
NOTE: This will only work on the first server you connect to.
If you connect to a different server, this script will no longer work (and may even crash the game).
To use this script in a different server, reload.
*/
const handler = {apply(r,o,args){Error.stackTraceLimit=0;return r.apply(o,args)}};Object.freeze = new Proxy(Object.freeze, handler)
window.HEAPF32 = undefined;
window.fov = [];
const win = typeof unsafeWindow != "undefined" ? unsafeWindow : window;
win.Object.defineProperty(win.Object.prototype, "HEAPF32", {
get: function() {
return undefined;
},
set: function(to) {
if(!to || !this.HEAPU32) return;
delete win.Object.prototype.HEAPF32;
window.Module = this;
window.Module.HEAPF32 = to;
window.HEAPF32 = to;
console.log("HEAPF32 found");
},
configurable: true,
enumerable: true
});
const int = setInterval(function() {
if (!document.querySelector('#home-screen[x-state="awaiting-spawn"] > #spawn-input > #pre-spawn-text')) return;
Array.from(window.HEAPF32).map((val, index) => {
if (val === 0.3499999940395355) { // 0.550000011920929
window.fov.push(index);
console.log('Got index', index);
}
});
clearInterval(int);
}, 150);
document.addEventListener('keydown', async event => {
if (event.key == '-') {
console.log('Zooming out...');
for (const fov of window.fov) {
window.HEAPF32[fov] -= 0.1;
}
} else if (event.key == '+') {
console.log('Zooming in...');
for (const fov of window.fov) {
window.HEAPF32[fov] += 0.1;
}
}
});
})();