Skip to content

Instantly share code, notes, and snippets.

@WesCook
Created March 27, 2023 13:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save WesCook/abc77f20cb2967b3349d4c2a89f3d580 to your computer and use it in GitHub Desktop.
Save WesCook/abc77f20cb2967b3349d4c2a89f3d580 to your computer and use it in GitHub Desktop.
Quickly spend town "ticks" in Melvor Township
/*
Quick and dirty script to bulk spend Township ticks in Melvor Idle
Make sure you're on the Township page (no need to be on trader tab)
Ensure the buy amount is set to 100% in advance
CSS selectors are how you choose which item to buy
Unfortunately not Firefox-compatible until they support the :has() function
*/
async function buyAndSkip() {
// Purchase Jellyfish
document.querySelector("township-conversion a:has(img[src='https://cdn.melvor.net/core/v018/assets/media/bank/static_jellyfish.png'])").click();
Swal.clickConfirm();
await wait(50);
// Purchase Redwood (Wood)
document.querySelector("#jump-to-resource-melvorF\\:Wood ~ ul > township-conversion a:has(img[src='https://cdn.melvor.net/core/v018/assets/media/bank/logs_redwood.png?2'])").click();
Swal.clickConfirm();
await wait(50);
// Purchase Coal (Stone)
document.querySelector("#jump-to-resource-melvorF\\:Stone ~ ul > township-conversion a:has(img[src='https://cdn.melvor.net/core/v018/assets/media/bank/ore_coal.png'])").click();
Swal.clickConfirm();
await wait(50);
// Purchase Coal (Ore)
document.querySelector("#jump-to-resource-melvorF\\:Ore ~ ul > township-conversion a:has(img[src='https://cdn.melvor.net/core/v018/assets/media/bank/ore_coal.png'])").click();
Swal.clickConfirm();
await wait(50);
// Purchase Coal (Coal)
document.querySelector("#jump-to-resource-melvorF\\:Coal ~ ul > township-conversion a:has(img[src='https://cdn.melvor.net/core/v018/assets/media/bank/ore_coal.png'])").click();
Swal.clickConfirm();
await wait(50);
// Purchase Ingots
document.querySelector("#jump-to-resource-melvorF\\:Bar ~ ul > township-conversion a:has(img[src='https://cdn.melvor.net/core/v018/assets/media/bank/iron_bar.png'])").click();
Swal.clickConfirm();
await wait(50);
// Purchase Herbs
document.querySelector("#jump-to-resource-melvorF\\:Herbs ~ ul > township-conversion a:has(img[src='https://cdn.melvor.net/core/v018/assets/media/bank/herb_sourweed.png'])").click();
Swal.clickConfirm();
await wait(50);
// Purchase Rune Essence
document.querySelector("#jump-to-resource-melvorF\\:Rune_Essence ~ ul > township-conversion a:has(img[src='https://cdn.melvor.net/core/v018/assets/media/bank/rune_essence.png'])").click();
Swal.clickConfirm();
await wait(50);
// Purchase Potions
document.querySelector("#jump-to-resource-melvorF\\:Potions ~ ul > township-conversion a:has(img[src='https://cdn.melvor.net/core/v018/assets/media/bank/potion_thieving_iv.png'])").click();
Swal.clickConfirm();
await wait(50);
// Purchase Redwood (Planks)
document.querySelector("#jump-to-resource-melvorF\\:Planks ~ ul > township-conversion a:has(img[src='https://cdn.melvor.net/core/v018/assets/media/bank/logs_redwood.png?2'])").click();
Swal.clickConfirm();
await wait(50);
await timeSkip();
}
// Skip 96 ticks (12*8, one trader cycle)
async function timeSkip() {
for(let i=0; i<8; i++) {
document.getElementById("BTN_TICK_12").click();
await wait(100);
}
}
// Asynchronously delay time in milliseconds, to let the UI update or whatever
async function wait(ms) {
return new Promise(resolve => {
setTimeout(resolve, ms);
});
}
buyAndSkip();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment