Calculator:Combat/Level

← Back to Calculators

Combat Level Calculator

Enter your HighSpell username to load your stats via the hiscores, or input your desired skill levels to calculate your future combat level.

  Hitpoints:
  Accuracy:
  Strength:
  Defense:
  Magic:
  Range:
Combat Level:
    ${hints.map(h => `
  • ${h}
  • `).join("")}
`; } function getStatFromDom(doc, skillName) { const nameDivs = doc.querySelectorAll('.hs_data__row__name'); for (const nameDiv of nameDivs) { if (nameDiv.textContent.toLowerCase().includes(skillName.toLowerCase())) { const levelDiv = nameDiv.parentElement.querySelector('.hs_data__row__level'); if (levelDiv) { const lvl = parseInt(levelDiv.textContent.trim()); if (!isNaN(lvl)) return lvl; } } } return 1; // fallback } function lookupStats() { const username = document.getElementById("username").value.trim(); const button = document.getElementById("lookup-button"); if (!username) { alert("Please enter a username."); return; } // Update button to show loading state button.disabled = true; button.textContent = "Searching..."; fetch(`https://highspell.com/hiscores/player/${encodeURIComponent(username)}`) .then(response => { if (!response.ok) throw new Error("Failed to fetch hiscores"); return response.text(); }) .then(html => { const doc = new DOMParser().parseFromString(html, "text/html"); document.getElementById("stat-hp").value = getStatFromDom(doc, "Hitpoints"); document.getElementById("stat-accuracy").value = getStatFromDom(doc, "Accuracy"); document.getElementById("stat-strength").value = getStatFromDom(doc, "Strength"); document.getElementById("stat-defense").value = getStatFromDom(doc, "Defense"); document.getElementById("stat-magic").value = getStatFromDom(doc, "Magic"); document.getElementById("stat-range").value = getStatFromDom(doc, "Range"); calculateCombatLevel(); }) .catch(err => { alert("Lookup failed. Please check the username or try again later."); console.error(err); }) .finally(() => { button.disabled = false; button.textContent = "Lookup"; }); } document.querySelectorAll('#combat-form input').forEach(input => { input.addEventListener('input', calculateCombatLevel); }); document.addEventListener('DOMContentLoaded', calculateCombatLevel); document.getElementById("lookup-form").addEventListener("submit", function(e) { e.preventDefault(); lookupStats(); });

Credit edit

Special thanks to User:Lol for proposing, developing, and contributing this calculator to the wiki.