🏠 Home 

PokeClicker Hacks

tab hack menu shiny rate and more...


Install this script?
// ==UserScript==
// @name       PokeClicker Hacks
// @author     fiammanda
// @version    1.20220222
// @grant      none
// @match      https://www.pokeclicker.com/
// @license    MIT
// @description tab hack menu shiny rate and more...
// @namespace https://greasyfork.org/users/1055144
// ==/UserScript==
let click = 0, hatch = 0;
const hacks = [
[0, "catch rate", 10],
["shiny", "shiny chance", 100],
["roaming", "roaming chance", 10],
["exp", "experience", 10],
["eggStep", "egg step", 10],
["money", "money", 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999],
["dungeonToken", "dungeon token", 500000],
["clickAttack", "player attack", 9000000000],
["pokemonAttack", "pokemon attack", 100],
[4, "berry growth", 100],
[8, "berry mutation", 100],
[9, "berry replant", 100],
[7, "mine enery", 900000],
[10, "mine damage", 900000],
[11, "mine award", 900000]
]
const style = document.createElement("style");
style.innerHTML = `
#game {
max-width: 1500px;
}
#game .col-lg-3 {
flex: 0 0 20%;
max-width: 20%;
}
#game .col-lg-6 {
flex: 0 0 40%;
max-width: 40%;
}
#hack {
font-size: .825rem;
overflow: auto;
}
#hack img, #hack svg {
width: 1rem;
color: #222;
}
#hack table {
table-layout:fixed;
}
#hack td {
padding: .25rem 0;
}
#hack td.disabled {
background: rgba(0,0,0,.03);
pointer-events: none;
}
#hack td.disabled img, #hack td.disabled svg {
opacity: .25;
}
#hack td:first-child {
padding: .25rem;
text-align: left;
}
#hack td[data-rate]::before {
content: attr(data-rate) attr(data-multiplier);
font-size: .75rem;
white-space: nowrap;
}
#hack td[data-rate="0"]::before {
content: "-";
}
#hack td[onclick] {
width: 2rem;
background: rgba(0,0,0,.05);
transition: background .2s ease-in-out;
cursor: pointer;
}
#hack td[onclick]:hover {
background: rgba(0,0,0,.08);
}
`;
document.body.append(style);
const hack = document.createElement("div");
hack.className = "col-lg-2 order-lg-first";
let html = `<div class="card border-secondary mb-3">
<div class="card-header p-0" data-toggle="collapse" href="#hack" aria-expanded="true"><span>Hacks</span></div>
<div id="hack" class="card-body show p-0">
<table class="table table-bordered m-0">
<tr>
<td>catch time</td>
<td onclick="this.classList.add('disabled');App.game.pokeballs.pokeballs[0].catchTime = 100"><img src="assets/images/pokeball/Pokeball.svg"></td>
<td onclick="this.classList.add('disabled');App.game.pokeballs.pokeballs[1].catchTime = 100"><img src="assets/images/pokeball/Greatball.svg"></td>
<td onclick="this.classList.add('disabled');App.game.pokeballs.pokeballs[2].catchTime = 100"><img src="assets/images/pokeball/Ultraball.svg"></td>
<td onclick="this.classList.add('disabled');App.game.pokeballs.pokeballs[3].catchTime = 100"><img src="assets/images/pokeball/Masterball.svg"></td>
</tr>
`;
hacks.forEach((h, i) => {
html += `<tr><td colspan="2">${h[1]}</td><td data-multiplier="${h[2].toString().substring(1)}" data-rate="0"></td><td onclick="`;
html += `let r = Number(this.previousSibling.dataset.rate) + 1;`;
html += `this.previousSibling.dataset.rate = r;`;
html += `this.nextSibling.classList.remove('disabled');`;
if (i == 0 || i > 8) {
html += `r = r * ${h[2]};`;
html += `App.game.oakItems.itemList[${h[0]}].bonusList = [r,r,r,r,r,r];`;
html += `App.game.oakItems.itemList[${h[0]}].inactiveBonus = r;`;
} else {
html += `r = r * ${h[2]} / Math.max((r - 1) * ${h[2]}, 1);`;
html += `App.game.multiplier.addBonus('${h[0]}', () => r);`;
}
html += `"><svg fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M12 5.75V18.25"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M18.25 12L5.75 12"/></svg></td><td class="disabled" onclick="`;
if (i == 0 || i > 8) {
html += `App.game.oakItems.itemList[${h[0]}].bonusList = [10,10,10,10,10,10];`;
html += `App.game.oakItems.itemList[${h[0]}].inactiveBonus = 10;`;
} else {
html += `let r = Number(this.previousSibling.previousSibling.dataset.rate);`;
html += `App.game.multiplier.addBonus('${h[0]}', () => 1 / Math.max(r * ${h[2]}, 1));`;
}
html += `this.previousSibling.previousSibling.dataset.rate = 0;`;
html += `this.classList.add('disabled');`;
html += `"><svg fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M11.25 4.75L8.75 7L11.25 9.25"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M12.75 19.25L15.25 17L12.75 14.75"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M9.75 7H13.25C16.5637 7 19.25 9.68629 19.25 13V13.25"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M14.25 17H10.75C7.43629 17 4.75 14.3137 4.75 11V10.75"/></svg></td></tr>`;
});
html += `
<tr>
<td colspan="3">auto click</td>
<td onclick="this.classList.add('disabled');this.nextElementSibling.classList.remove('disabled');click=setInterval(()=>{4==App.game.gameState&&DungeonRunner.handleClick()},100)"><svg fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M18.25 12L5.75 5.75V18.25L18.25 12Z"/></svg></td>
<td class="disabled" onclick="this.classList.add('disabled');this.previousElementSibling.classList.remove('disabled');clearInterval(click)"><svg fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M15.25 6.75V17.25"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M8.75 6.75V17.25"/></svg></td>
<tr>
</tr>
<td colspan="3">auto hatch</td>
<td onclick="this.classList.add('disabled');this.nextElementSibling.classList.remove('disabled');hatch=setInterval(function(){for(let a=App.game.party.caughtPokemon.filter(a=>!(a.breeding||100>a.level)&&!(-1<BreedingController.filter.category()&&a.category!=BreedingController.filter.category())&&!(-1<BreedingController.filter.shinyStatus()&&+a.shiny!==BreedingController.filter.shinyStatus()));App.game.breeding.hasFreeQueueSlot()&&a.length;)App.game.breeding.addPokemonToHatchery(a[0]),a.shift()},6e4)"><svg fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M18.25 12L5.75 5.75V18.25L18.25 12Z"/></svg></td>
<td class="disabled" onclick="this.classList.add('disabled');this.previousElementSibling.classList.remove('disabled');clearInterval(hatch)"><svg fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M15.25 6.75V17.25"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M8.75 6.75V17.25"/></svg></td>
</tr>
</table>
</div>
</div>`;
html += `<div class="card sortable border-secondary mb-3" data-bind="visible: player.highestRegion">${document.getElementById("shortcutsContainer").innerHTML}</div>`;
hack.innerHTML = html;
document.getElementById("shortcutsContainer").remove();
document.querySelector(".justify-content-lg-center").prepend(hack);