Zoom cheat, game speed change cheat
As of
// ==UserScript==
// @name Paper.IO Enhanced
// @namespace -
// @version 1.0.0
// @description Zoom cheat, game speed change cheat
// @author NotYou
// @match *://paper-io.com*
// @match *://www.paper-io.com*
// @run-at document-start
// @license GPL-3.0-or-later
// @grant none
// @icon data:image/png;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAe8MAYnvDAHp7wwB6e8MAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHvDAMp7wwD/e8MA/3vDAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB7wwDKe8MA/3vDAP97wwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfcQAyn3EAP99xAD/fcQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIHGAMqBxgD/gcYA/4HGAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACHyQDKh8kA/4fJAP+HyQBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjcwAyo3MAP+NzAD/jcwAsI7MAJSOzACUhrgAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJPPAMqTzwD/k88A/5PPAP+TzwD/k88A/4q5DfqKtxdaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACb0wDKm9MA/5vTAP+b0wD/m9MA/5vTAP+Rvif/kLss+pG8MVoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAodYDyqHWA/+h1gP/oNYBhp/VAFyf1QBcnc4X7J3OGP+ezhf6oNMOIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKnaKMqp2ij/qdoo/6naKEAAAAAAAAAAAKnaKOKp2ij/qdoo/6naKCoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACv3UHKr91B/6/dQf+v3UFAAAAAAAAAAACv3UHir91B/6/dQf+v3UEqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAr9VclK/UX/+v1F//tN1WwrXgVK614FSur9Ve9q/UX/+v1F7gsdpUEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK/QbASx0XCisdFx/7nfY/+64mD/uuJg/7LTb/+x0XDgsNBtIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtdN3ArbUeqK+4W//v+Rt/7/kbf+31nngtdN4IgAAAAAAAAAAAAAAALXTdwwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC614AEweR2QMLmdELC5nRCvNt8GgAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAPH/AADx/wAA8f8AAPH/AADx/wAA8D8AAPAfAADwDwAA8McAAPHHAADxxwAA8AcAAPgPAAD8HwAA//8AAA==
// ==/UserScript==
(function() {
let minimalZoom = 0.5
let maximalZoom = 3.5
let minimalGameSpeed = 10
let maximalGameSpeed = 200
// Do NOT edit code below
let css = `
#get_random_name {
width: 60px;
height: 60px;
left: -70px;
background: rgb(255, 255, 255);
position: absolute;
box-shadow: rgb(151, 151, 151) 0 6px 0;
background-image: url(https://cdn-icons-png.flaticon.com/512/1714/1714041.png);
background-size: 70% 70%;
background-repeat: no-repeat;
background-position: 50% 50%;
filter: grayscale(1);
}
#get_random_name:active {
box-shadow: none;
top: 6px;
}`
class CookieControl {
getEntries() {
return document.cookie.replace(/\s/g, '').split(';').map(e => e.split('='))
}
set(name, value) {
document.cookie = encodeURIComponent(name.trim()) + '=' + encodeURIComponent(value.trim())
}
get(name) {
let entries = this.getEntries()
return entries.find(e => e[0] === name)[1]
}
}
let cookies = CookieControl.prototype
waitForProperty(window, 'paper2').then(() => {
let paper = window.paper2
waitForProperty(paper, 'game').then(() => {
let config = paper.game.config
let scene = paper.configs.paper2_classic
let game = paper.game
// Get Random Name
let username = document.querySelector('.username')
username.insertAdjacentHTML('beforebegin', '<div id="get_random_name"></div>')
document.querySelector('#get_random_name').addEventListener('click', () => {
let name = getRandomName()
username.querySelector('input').value = name
cookies.set('paperio_username', name)
})
window.addEventListener('wheel', e => {
let isPositive = e.deltaY > 0
if(e.ctrlKey) {
e.preventDefault()
// Game Speed Cheat
config.unitSpeed += isPositive ? -2.5 : 2.5
let current = config.unitSpeed
config.unitSpeed = correctValue(current, minimalGameSpeed, maximalGameSpeed)
} else {
// Zoom Cheat
scene.maxScale += isPositive ? -0.5 : 0.5
let current = scene.maxScale
scene.maxScale = correctValue(current, minimalZoom, maximalZoom)
}
})
// Movement Cheat
let listenersData = ['w', 'a', 's', 'd']
listenersData.forEach((e, i) => {
addKeyListener(e, i > 1 ? false : true, i % 2 === 0 ? 'y' : 'x')
})
// Nerd Stuff
let styleNode = document.createElement('style')
styleNode.appendChild(document.createTextNode(css))
document.head.appendChild(styleNode)
function addKeyListener(key, isNegative, coordinate) {
let code = 'Key' + key.toUpperCase()
let randomValue = Math.floor(Math.random() * 18)
window.addEventListener('keydown', e => {
if(e.code === code) {
let player = game.player
if(player) {
player.position[coordinate] += randomValue * (isNegative ? -1 : 1)
}
}
})
}
function getRandomName() {
let namesPool = game.nameManager.pool
return namesPool[Math.floor(Math.random() * namesPool.length)]
}
function correctValue(currentValue, minimalValue, maximalValue) {
return Math.max(minimalValue, Math.min(maximalValue, currentValue))
}
})
})
function waitForProperty(target, prop) {
return new Promise(res => {
let interval = setInterval(() => {
if(target[prop]) {
clearInterval(interval)
return res(target[prop])
}
}, 1e3)
})
}
})()