Nex is one of the most profitable bosses in Old School RuneScape, located within the Ancient Prison of GWD. Unlike many other bosses, Nex's unique drop mechanics rely heavily on contribution-based distribution. This means the probability of seeing a unique in your name depends directly on how much damage you deal relative to your team.
The Mechanics of Nex Uniques
The base rate for any unique drop at Nex is 1/43. However, this is for the entire group. Only one player in the room can receive a unique per kill. Your individual chance is calculated by taking that 1/43 chance and multiplying it by your percentage of the total damage dealt.
Furthermore, the MVP (the player who dealt the most damage or had the highest contribution score) receives a 10% boost to their specific weight on the unique table. This makes securing MVP status critical for long-term profit efficiency.
Drop Table Weights
Once the game decides a unique has dropped, it rolls on the specific items based on their internal weights:
Zaryte Vambraces: 1/3 chance of being the unique.
Nihil Horn: 1/6 chance of being the unique.
Torva Platebody: 1/12 chance of being the unique.
Torva Platelegs: 1/12 chance of being the unique.
Torva Full Helm: 1/12 chance of being the unique.
Ancient Hilt: 1/12 chance of being the unique.
Example Scenarios
Example 1: 5-Man Team (Equal Damage)
In a standard 5-man team where everyone does 20% damage, the non-MVP players have a roughly 1/215 chance per kill. If you do 500 kills in this setup, you have a ~90% chance of seeing at least one unique in your name.
Example 2: Mass Nex (1% Damage)
In a mass with 60 people, if you only contribute 1% of the damage, your odds plummet to 1/4,300. This is why "small teams" (3-5 players) are considered the gold standard for consistent GP per hour.
Using the Calculator
To use this tool, simply input the size of your party and your average damage contribution. If you are consistently the MVP, select "Yes" to apply the 1.1x multiplier. The calculator will provide your specific odds per kill and the binomial probability of obtaining at least one unique over your specified Kill Count (KC).
function calculateNexProbability() {
var groupSize = parseFloat(document.getElementById("groupSize").value);
var damagePercent = parseFloat(document.getElementById("damageDealt").value);
var kc = parseFloat(document.getElementById("killCount").value);
var mvpMultiplier = parseFloat(document.getElementById("mvpBonus").value);
if (isNaN(groupSize) || isNaN(damagePercent) || isNaN(kc) || damagePercent <= 0) {
alert("Please enter valid numbers for contribution and kill count.");
return;
}
// Base drop rate is 1/43 per kill for the group
// Contribution based: (1/43) * (Damage Share)
// Damage share is damagePercent / 100
// If MVP, boost the probability by 10%
var baseUniqueRate = 1 / 43;
var contributionFactor = damagePercent / 100;
var individualChancePerKill = baseUniqueRate * contributionFactor * mvpMultiplier;
// Cumulative probability: 1 – ( (1 – p)^n )
var probNoDrop = Math.pow(1 – individualChancePerKill, kc);
var probAtLeastOne = (1 – probNoDrop) * 100;
// Display result box
var resultDiv = document.getElementById("nexResult");
resultDiv.style.display = "block";
// Update text
var perKillText = "Your specific unique chance per kill: 1 in " + (1 / individualChancePerKill).toFixed(2);
document.getElementById("perKillChance").innerText = perKillText;
var cumulativeText = "Chance of 1+ unique in " + kc + " kills: " + probAtLeastOne.toFixed(2) + "%";
document.getElementById("cumulativeChance").innerText = cumulativeText;
// Item breakdown (Probabilities over the KC)
var itemBreakdown = document.getElementById("itemBreakdown");
itemBreakdown.innerHTML = "";
var items = [
{ name: "Zaryte Vambraces", weight: 3/9 },
{ name: "Nihil Horn", weight: 1.5/9 }, // Normalized roughly to 1/6
{ name: "Torva Piece/Hilt", weight: 1/12 }
];
var itemProbList = [
{ name: "Zaryte Vambraces", rate: 1/3 },
{ name: "Nihil Horn", rate: 1/6 },
{ name: "Any Torva Piece", rate: 3/12 },
{ name: "Ancient Hilt", rate: 1/12 }
];
for (var i = 0; i < itemProbList.length; i++) {
var itemP = individualChancePerKill * itemProbList[i].rate;
var itemCumulative = (1 – Math.pow(1 – itemP, kc)) * 100;
var li = document.createElement("li");
li.style.color = "#c4b59d";
li.style.marginBottom = "4px";
li.innerHTML = "" + itemProbList[i].name + ": " + itemCumulative.toFixed(2) + "% chance";
itemBreakdown.appendChild(li);
}
}