In Old School RuneScape (OSRS), using Red Chinchompas (Red Chins) is widely considered one of the fastest methods for training the Ranged skill. Unlike standard arrows or bolts, Chinchompas are live animals that explode on impact, dealing Area of Effect (AoE) damage in a 3×3 grid. This mechanic allows players to hit up to 9 targets simultaneously, resulting in massive experience rates per hour.
Pro Tip: To maximize the efficiency of your Red Chins, it is highly recommended to train in the Maniacal Monkey Hunter tunnels (requires Monkey Madness II) or the Skeleton Monkeys in the Ape Atoll tunnels (requires Monkey Madness I).
How This Calculator Works
This tool calculates exactly how many Red Chinchompas you need to buy to reach your desired level. It uses the standard OSRS experience table to determine the XP gap between your current and target levels.
Input Parameters Explained:
Current/Target Level: Input your Ranged levels. The tool calculates the raw XP difference (e.g., Level 99 requires 13,034,431 XP).
XP Per Chin: This variable fluctuates based on your gear (Void Knight vs. Armadyl), prayer (Eagle Eye/Rigour), and location.
Standard Setup (MM1 Tunnels): ~250-280 XP per chin.
Optimized Setup (MM2 Tunnels + Elite Void): ~320-370 XP per chin.
Price Per Chin: The Grand Exchange price fluctuates daily. Always check the current GE price for accurate cost estimation.
Gear Recommendations
Because Red Chins are expensive, accuracy and damage bonuses are critical to reduce the cost per XP.
Elite Void Knight Equipment: Provides a massive damage boost which scales well with the AoE effect.
Necklace of Anguish: Best-in-slot for Ranged damage.
Ava's Assembler: Note that Ava's devices do not save Chinchompas. They are consumed on every throw.
Cost Efficiency vs. Black Chinchompas
While Black Chinchompas offer slightly higher XP rates due to higher damage, they are significantly more expensive. Red Chinchompas generally offer the best balance of XP/Hour and GP/XP for most players aiming for level 99 Ranged.
function calculateRedChins() {
// Standard OSRS XP Table (Levels 1-99)
var xpTable = [
0, 0, 83, 174, 276, 388, 512, 650, 801, 969, 1154,
1358, 1584, 1833, 2107, 2411, 2746, 3115, 3523, 3973, 4470,
5018, 5624, 6291, 7028, 7842, 8740, 9730, 10824, 12031, 13363,
14833, 16456, 18247, 20224, 22406, 24815, 27473, 30408, 33648, 37224,
41171, 45529, 50339, 55649, 61512, 67983, 75127, 83014, 91721, 101333,
111945, 123660, 136594, 150872, 166636, 184040, 203254, 224466, 247886, 273742,
302288, 333804, 368599, 407015, 449428, 496254, 547953, 605032, 668051, 737627,
814445, 899257, 992895, 1096278, 1210421, 1336443, 1475581, 1629200, 1798808, 1986068,
2192818, 2421087, 2673114, 2951373, 3258594, 3597792, 3972294, 4385776, 4842295, 5346332,
5902831, 6517253, 7195629, 7944614, 8771558, 9684577, 10692629, 11805606, 13034431
];
// Get Input Elements
var currentLevelInput = document.getElementById('currentLevel');
var targetLevelInput = document.getElementById('targetLevel');
var xpPerChinInput = document.getElementById('xpPerChin');
var costPerChinInput = document.getElementById('costPerChin');
// Parse Values
var currentLevel = parseInt(currentLevelInput.value);
var targetLevel = parseInt(targetLevelInput.value);
var xpPerChin = parseFloat(xpPerChinInput.value);
var costPerChin = parseFloat(costPerChinInput.value);
// Validation Logic
if (isNaN(currentLevel) || currentLevel 99) {
alert("Please enter a valid Current Level between 1 and 99.");
return;
}
if (isNaN(targetLevel) || targetLevel 99) {
alert("Please enter a valid Target Level between 1 and 99.");
return;
}
if (targetLevel <= currentLevel) {
alert("Target Level must be higher than Current Level.");
return;
}
if (isNaN(xpPerChin) || xpPerChin <= 0) {
alert("Please enter a valid XP per Chin value.");
return;
}
if (isNaN(costPerChin) || costPerChin < 0) {
alert("Please enter a valid cost per chin.");
return;
}
// Calculate XP Difference
var startXP = xpTable[currentLevel];
var endXP = xpTable[targetLevel];
var xpRequired = endXP – startXP;
// Calculate Chins Needed
var chinsNeeded = Math.ceil(xpRequired / xpPerChin);
// Calculate Total Cost
var totalCost = chinsNeeded * costPerChin;
// Calculate Time (Assuming medium efficiency of 1500 throws/hr in MM2 tunnels)
// Short fuse implies 3 ticks (1.8s) but heavily dependent on stacking.
// 1500 is a safe conservative estimate for continuous throwing.
var throwsPerHour = 1500;
var hoursNeeded = chinsNeeded / throwsPerHour;
// Display Results
document.getElementById('results').style.display = 'block';
// Number Formatting
document.getElementById('xpRequired').innerHTML = xpRequired.toLocaleString();
document.getElementById('chinsNeeded').innerHTML = chinsNeeded.toLocaleString();
document.getElementById('totalCost').innerHTML = totalCost.toLocaleString() + " gp";
// Time formatting (Hours and Minutes)
var h = Math.floor(hoursNeeded);
var m = Math.round((hoursNeeded – h) * 60);
var timeString = h + "h " + m + "m";
if (h === 0) timeString = m + "m";
document.getElementById('estTime').innerHTML = timeString;
}