Module:Boss collection log calculator

local p = {}

function p.main(frame) local args = frame:getParent.args local boss = tonumber(args.boss) -- return tableToString(args) if boss == 0 then return Araxxi(args) elseif boss == 1 then return CommanderZilyana(args) elseif boss == 2 then return CorporealBeast(args) elseif boss == 3 then return DagannothKings(args) elseif boss == 4 then return GeneralGraardor(args) elseif boss == 5 then return GiantMole(args) elseif boss == 6 then return KalphiteKing(args) elseif boss == 7 then return KalphiteQueen(args) elseif boss == 8 then return KingBlackDragon(args) elseif boss == 9 then return KreeArra(args) elseif boss == 10 then return KRilTsutsaroth(args) elseif boss == 11 then return Legiones(args) elseif boss == 12 then return Nex(args) elseif boss == 13 then return QueenBlackDragon(args) elseif boss == 14 then return TheMagister(args) elseif boss == 15 then return TzHaar(args) end end

function tableToString(t) local key local value local result

result = ''

for key,value in pairs(t) do   if (tonumber(key) ~= nil) then result = result .. ':table[' .. key .. '] is ' .. value .. '\n' else result = result .. ':table[\'' .. key .. '\'] is ' .. value .. '\n' end end return result end

function Araxxi(args) local kills = 1000000 local killCount = tonumber(args.killCount) local currentKillCount = killCount local startKillCount = 0 local endKillCount = 0 local leastKills = kills local mostKills = 0 local bossLogCompletionCount = 0 local araxytePheromoneDropRate = 50--Araxyte pheromone 1/50 to 1/35 from 0 to 300 enrage local spiderLegTopDropRate = 40--Spider leg top local spiderLegMiddleDropRate = 40--Spider leg middle local spiderLegBottomDropRate = 40--Spider leg bottom local araxxisFangDropRate = 120--Araxxi's fang local araxxisWebDropRate = 120--Araxxi's web local araxxisEyeDropRate = 120--Araxxi's eye local araxytePetDropRate = 1000--Araxyte pet 1/1000 to 1/500 from 0 to 500 enrage gained within the kill local araxyteEggDropRate = 500--Araxyte egg local petThreshold = 200 local argsAraxytePheromone = tonumber(args.araxytePheromone) local argsSpiderLeg = tonumber(args.spiderLegTop) + tonumber(args.spiderLegMiddle) + tonumber(args.spiderLegBottom) local argsAraxxisFang = tonumber(args.araxxisFang) local argsAraxxisWeb = tonumber(args.araxxisWeb) local argsAraxxisEye = tonumber(args.araxxisEye) local argsAraxytePet = tonumber(args.araxytePet) local argsAraxyteEgg = tonumber(args.araxyteEgg) local araxytePheromone = argsAraxytePheromone local spiderLeg = argsSpiderLeg local araxxisFang = argsAraxxisFang local araxxisWeb = argsAraxxisWeb local araxxisEye = argsAraxxisEye local araxytePet = argsAraxytePet local araxyteEgg = argsAraxyteEgg local enrage = 0 local enrageP4 = 100 math.randomseed(os.time) for i=1,kills do   local araxytePheromoneRNG = math.random(1, araxytePheromoneDropRate - (enrage / 20)) local spiderLegRNG = math.random(1, 40) local araxxisFangWebEyeRNG = math.random(1, 120) local araxytePetRNG = math.random(1, araxytePetDropRate - enrageP4) if araxytePheromoneRNG == 1 then araxytePheromone = araxytePheromone + 1 end if spiderLegRNG == 1 then spiderLeg = spiderLeg + 1 end if araxxisFangWebEyeRNG == 1 then local meleeFormRNG = math.random(1, 4) if meleeFormRNG >= 1 and meleeFormRNG <= 2 then araxxisFang = araxxisFang + 1 elseif meleeFormRNG == 3 then araxxisWeb = araxxisWeb + 1 elseif meleeFormRNG == 4 then araxxisEye = araxxisEye + 1 end end if araxytePetRNG == 1 then araxytePet = araxytePet + 1 end if araxytePet >= 1 then araxyteEgg = araxyteEgg + petRNG(araxyteEggDropRate, petThreshold, currentKillCount) end currentKillCount = currentKillCount + 1 if araxytePheromone >= 1 and spiderLeg >= 3 and araxxisFang >= 1 and araxxisWeb >= 1 and araxxisEye >=1 and araxytePet >= 1 and araxyteEgg >= 2 then bossLogCompletionCount = bossLogCompletionCount + 1 endKillCount = i     local totalKills = endKillCount - startKillCount if totalKills > mostKills then mostKills = totalKills end if totalKills < leastKills then leastKills = totalKills end currentKillCount = killCount startKillCount = i     araxytePheromone = argsAraxytePheromone spiderLeg = argsSpiderLeg araxxisFang = argsAraxxisFang araxxisWeb = argsAraxxisWeb araxxisEye = argsAraxxisEye araxytePet = argsAraxytePet araxyteEgg = argsAraxyteEgg end end local averageKills = kills / bossLogCompletionCount return results(kills, averageKills, leastKills, mostKills) end

function CommanderZilyana(args) local kills = 1000000 local killCount = tonumber(args.killCount) local currentKillCount = killCount local startKillCount = 0 local endKillCount = 0 local leastKills = kills local mostKills = 0 local bossLogCompletionCount = 0 local saradominSwordDropRate = 128--Saradomin sword 2/128 then 1/5 local armadylCrossbowDropRate = 128--Armadyl crossbow 2/128 then 1/5 then 1/2 local offHandArmadylCrossbowDropRate = 128--Off-hand Armadyl crossbow 2/128 then 1/5 then 1/2 local saradominsWhisperDropRate = 128--Saradomin's whisper 2/128 then 1/5 local saradominsMurmurDropRate = 128--Saradomin's murmur 2/128 then 1/5 local saradominsHissDropRate = 128--Saradomin's hiss 2/128 then 1/5 local godswordShard1DropRate = 128--Godsword shard 1 1/128 then 1/2 then 1/3 local godswordShard2DropRate = 128--Godsword shard 2 1/128 then 1/2 then 1/3 local godswordShard3DropRate = 128--Godsword shard 3 1/128 then 1/2 then 1/3 local saradominHiltDropRate = 128--Saradomin hilt 1/128 then 1/4 local zilyanasNotesDropRate = 128--Zilyana's Notes local warpriestOfSaradominHelmDropRate = 128--Warpriest of Saradomin helm local warpriestOfSaradominCuirassDropRate = 128--Warpriest of Saradomin cuirass local warpriestOfSaradominGreavesDropRate = 128--Warpriest of Saradomin greaves local warpriestOfSaradominGauntletsDropRate = 128--Warpriest of Saradomin gauntlets local warpriestOfSaradominBootsDropRate = 128--Warpriest of Saradomin boots local warpriestOfSaradominCapeDropRate = 128--Warpriest of Saradomin cape local petDropRate = 5000--Auburn lock local petHMDropRate = 1000--Auburn lock HM local petThreshold = 1000 local argsHardMode = tonumber(args.hardModeCommanderZilyana) local argsBodyguards = tonumber(args.starlight) + tonumber(args.bree) + tonumber(args.growler) local argsSaradominSword = tonumber(args.saradominSword) local argsArmadylCrossbow = tonumber(args.armadylCrossbow) local argsOffHandArmadylCrossbow = tonumber(args.offHandArmadylCrossbow) local argsSaradominsWhisper = tonumber(args.saradominsWhisper) local argsSaradominsMurmur = tonumber(args.saradominsMurmur) local argsSaradominsHiss = tonumber(args.saradominsHiss) local argsGodswordShard1 = tonumber(args.godswordShard1CommanderZilyana) local argsGodswordShard2 = tonumber(args.godswordShard2CommanderZilyana) local argsGodswordShard3 = tonumber(args.godswordShard3CommanderZilyana) local argsSaradominHilt = tonumber(args.saradominHilt) local argsZilyanasNotes = tonumber(args.zilyanasNotes) local argsWarpriestOfSaradominHelm = tonumber(args.warpriestOfSaradominHelm) local argsWarpriestOfSaradominCuirass = tonumber(args.warpriestOfSaradominCuirass) local argsWarpriestOfSaradominGreaves = tonumber(args.warpriestOfSaradominGreaves) local argsWarpriestOfSaradominGauntlets = tonumber(args.warpriestOfSaradominGauntlets) local argsWarpriestOfSaradominBoots = tonumber(args.warpriestOfSaradominBoots) local argsWarpriestOfSaradominCape = tonumber(args.warpriestOfSaradominCape) local argsAuburnLock = tonumber(args.auburnLock) local saradominSword = argsSaradominSword local armadylCrossbow = argsArmadylCrossbow local offHandArmadylCrossbow = argsOffHandArmadylCrossbow local saradominsWhisper = argsSaradominsWhisper local saradominsMurmur = argsSaradominsMurmur local saradominsHiss = argsSaradominsHiss local godswordShard1 = argsGodswordShard1 local godswordShard2 = argsGodswordShard2 local godswordShard3 = argsGodswordShard3 local saradominHilt = argsSaradominHilt local zilyanasNotes = argsZilyanasNotes local warpriestOfSaradominHelm = argsWarpriestOfSaradominHelm local warpriestOfSaradominCuirass = argsWarpriestOfSaradominCuirass local warpriestOfSaradominGreaves = argsWarpriestOfSaradominGreaves local warpriestOfSaradominGauntlets = argsWarpriestOfSaradominGauntlets local warpriestOfSaradominBoots = argsWarpriestOfSaradominBoots local warpriestOfSaradominCape = argsWarpriestOfSaradominCape local auburnLock = argsAuburnLock math.randomseed(os.time) if argsHardMode == 1 then for i=1,kills do     local mainTableRNG = math.random(1, 128) local warpriestTableRNG = math.random(1, 128) if mainTableRNG >= 1 and mainTableRNG <= 2 then local uniqueTableRNG = math.random(1, 5) if uniqueTableRNG == 1 then saradominSword = saradominSword + 1 zilyanasNotes = zilyanasNotes + 1 elseif uniqueTableRNG == 2 then if math.random(1, 2) == 1 then armadylCrossbow = armadylCrossbow + 1 zilyanasNotes = zilyanasNotes + 1 else offHandArmadylCrossbow = offHandArmadylCrossbow + 1 zilyanasNotes = zilyanasNotes + 1 end elseif uniqueTableRNG == 3 then saradominsWhisper = saradominsWhisper + 1 zilyanasNotes = zilyanasNotes + 1 elseif uniqueTableRNG == 4 then saradominsMurmur = saradominsMurmur + 1 zilyanasNotes = zilyanasNotes + 1 elseif uniqueTableRNG == 5 then saradominsHiss = saradominsHiss + 1 zilyanasNotes = zilyanasNotes + 1 end elseif mainTableRNG == 3 then if math.random(1, 2) == 1 then local godswordShardRNG = math.random(1, 3) if godswordShardRNG == 1 then godswordShard1 = godswordShard1 + 1 elseif godswordShardRNG == 2 then godswordShard2 = godswordShard2 + 1 elseif godswordShardRNG == 3 then godswordShard3 = godswordShard3 + 1 end end elseif mainTableRNG == 4 then if math.random(1, 4) == 1 then saradominHilt = saradominHilt + 1 zilyanasNotes = zilyanasNotes + 1 end end if warpriestTableRNG == 1 then local warpriestRNG = math.random(1, 6) if warpriestRNG == 1 then warpriestOfSaradominHelm = warpriestOfSaradominHelm + 1 elseif warpriestRNG == 2 then warpriestOfSaradominCuirass = warpriestOfSaradominCuirass + 1 elseif warpriestRNG == 3 then warpriestOfSaradominGreaves = warpriestOfSaradominGreaves + 1 elseif warpriestRNG == 4 then warpriestOfSaradominGauntlets = warpriestOfSaradominGauntlets + 1 elseif warpriestRNG == 5 then warpriestOfSaradominBoots = warpriestOfSaradominBoots + 1 elseif warpriestRNG == 6 then warpriestOfSaradominCape = warpriestOfSaradominCape + 1 end end auburnLock = auburnLock + petRNG(petHMDropRate, petThreshold, currentKillCount) for i=1, argsBodyguards do       local mainTableRNG = math.random(1, 128) local warpriestTableRNG = math.random(1, 128) if mainTableRNG == 1 then local uniqueTableRNG = math.random(1, 320) if uniqueTableRNG == 1 then saradominSword = saradominSword + 1 zilyanasNotes = zilyanasNotes + 1 elseif uniqueTableRNG == 2 then if math.random(1, 2) == 1 then armadylCrossbow = armadylCrossbow + 1 zilyanasNotes = zilyanasNotes + 1 else offHandArmadylCrossbow = offHandArmadylCrossbow + 1 zilyanasNotes = zilyanasNotes + 1 end elseif uniqueTableRNG == 3 then saradominsWhisper = saradominsWhisper + 1 zilyanasNotes = zilyanasNotes + 1 elseif uniqueTableRNG == 4 then saradominsMurmur = saradominsMurmur + 1 zilyanasNotes = zilyanasNotes + 1 elseif uniqueTableRNG == 5 then saradominsHiss = saradominsHiss + 1 zilyanasNotes = zilyanasNotes + 1 end elseif mainTableRNG == 2 then if math.random(1, 4) == 1 then local godswordShardRNG = math.random(1, 3) if godswordShardRNG == 1 then godswordShard1 = godswordShard1 + 1 elseif godswordShardRNG == 2 then godswordShard2 = godswordShard2 + 1 elseif godswordShardRNG == 3 then godswordShard3 = godswordShard3 + 1 end end end if warpriestTableRNG == 1 then local warpriestRNG = math.random(1, 6) if warpriestRNG == 1 then warpriestOfSaradominHelm = warpriestOfSaradominHelm + 1 elseif warpriestRNG == 2 then warpriestOfSaradominCuirass = warpriestOfSaradominCuirass + 1 elseif warpriestRNG == 3 then warpriestOfSaradominGreaves = warpriestOfSaradominGreaves + 1 elseif warpriestRNG == 4 then warpriestOfSaradominGauntlets = warpriestOfSaradominGauntlets + 1 elseif warpriestRNG == 5 then warpriestOfSaradominBoots = warpriestOfSaradominBoots + 1 elseif warpriestRNG == 6 then warpriestOfSaradominCape = warpriestOfSaradominCape + 1 end end end if saradominSword >= 1 and armadylCrossbow >= 1 and offHandArmadylCrossbow >= 1 and saradominsWhisper >= 1 and saradominsMurmur >= 1 and saradominsHiss >= 1 and godswordShard1 >= 1 and godswordShard2 >= 1 and godswordShard3 >= 1 and saradominHilt >= 1 and zilyanasNotes >= 1 and warpriestOfSaradominHelm >= 1 and warpriestOfSaradominCuirass >= 1 and warpriestOfSaradominGreaves >= 1 and warpriestOfSaradominGauntlets >= 1 and warpriestOfSaradominBoots >= 1 and warpriestOfSaradominCape >= 1 and auburnLock >= 1 then bossLogCompletionCount = bossLogCompletionCount + 1 endKillCount = i       local totalKills = endKillCount - startKillCount if totalKills > mostKills then mostKills = totalKills end if totalKills < leastKills then leastKills = totalKills end currentKillCount = killCount startKillCount = i       saradominSword = argsSaradominSword armadylCrossbow = argsArmadylCrossbow offHandArmadylCrossbow = argsOffHandArmadylCrossbow saradominsWhisper = argsSaradominsWhisper saradominsMurmur = argsSaradominsMurmur saradominsHiss = argsSaradominsHiss godswordShard1 = argsGodswordShard1 godswordShard2 = argsGodswordShard2 godswordShard3 = argsGodswordShard3 saradominHilt = argsSaradominHilt zilyanasNotes = argsZilyanasNotes warpriestOfSaradominHelm = argsWarpriestOfSaradominHelm warpriestOfSaradominCuirass = argsWarpriestOfSaradominCuirass warpriestOfSaradominGreaves = argsWarpriestOfSaradominGreaves warpriestOfSaradominGauntlets = argsWarpriestOfSaradominGauntlets warpriestOfSaradominBoots = argsWarpriestOfSaradominBoots warpriestOfSaradominCape = argsWarpriestOfSaradominCape auburnLock = argsAuburnLock end end else for i=1,kills do     local mainTableRNG = math.random(1, 128) local warpriestTableRNG = math.random(1, 128) if mainTableRNG >= 1 and mainTableRNG <= 2 then local uniqueTableRNG = math.random(1, 5) if uniqueTableRNG == 1 then saradominSword = saradominSword + 1 zilyanasNotes = zilyanasNotes + 1 elseif uniqueTableRNG == 2 then if math.random(1, 2) == 1 then armadylCrossbow = armadylCrossbow + 1 zilyanasNotes = zilyanasNotes + 1 else offHandArmadylCrossbow = offHandArmadylCrossbow + 1 zilyanasNotes = zilyanasNotes + 1 end elseif uniqueTableRNG == 3 then saradominsWhisper = saradominsWhisper + 1 zilyanasNotes = zilyanasNotes + 1 elseif uniqueTableRNG == 4 then saradominsMurmur = saradominsMurmur + 1 zilyanasNotes = zilyanasNotes + 1 elseif uniqueTableRNG == 5 then saradominsHiss = saradominsHiss + 1 zilyanasNotes = zilyanasNotes + 1 end elseif mainTableRNG == 3 then if math.random(1, 2) == 1 then local godswordShardRNG = math.random(1, 3) if godswordShardRNG == 1 then godswordShard1 = godswordShard1 + 1 elseif godswordShardRNG == 2 then godswordShard2 = godswordShard2 + 1 elseif godswordShardRNG == 3 then godswordShard3 = godswordShard3 + 1 end end elseif mainTableRNG == 4 then if math.random(1, 4) == 1 then saradominHilt = saradominHilt + 1 zilyanasNotes = zilyanasNotes + 1 end end if warpriestTableRNG == 1 then local warpriestRNG = math.random(1, 6) if warpriestRNG == 1 then warpriestOfSaradominHelm = warpriestOfSaradominHelm + 1 elseif warpriestRNG == 2 then warpriestOfSaradominCuirass = warpriestOfSaradominCuirass + 1 elseif warpriestRNG == 3 then warpriestOfSaradominGreaves = warpriestOfSaradominGreaves + 1 elseif warpriestRNG == 4 then warpriestOfSaradominGauntlets = warpriestOfSaradominGauntlets + 1 elseif warpriestRNG == 5 then warpriestOfSaradominBoots = warpriestOfSaradominBoots + 1 elseif warpriestRNG == 6 then warpriestOfSaradominCape = warpriestOfSaradominCape + 1 end end auburnLock = auburnLock + petRNG(petDropRate, petThreshold, currentKillCount) for i=1, argsBodyguards do       local mainTableRNG = math.random(1, 128) local warpriestTableRNG = math.random(1, 128) if mainTableRNG == 1 then local uniqueTableRNG = math.random(1, 320) if uniqueTableRNG == 1 then saradominSword = saradominSword + 1 zilyanasNotes = zilyanasNotes + 1 elseif uniqueTableRNG == 2 then if math.random(1, 2) == 1 then armadylCrossbow = armadylCrossbow + 1 zilyanasNotes = zilyanasNotes + 1 else offHandArmadylCrossbow = offHandArmadylCrossbow + 1 zilyanasNotes = zilyanasNotes + 1 end elseif uniqueTableRNG == 3 then saradominsWhisper = saradominsWhisper + 1 zilyanasNotes = zilyanasNotes + 1 elseif uniqueTableRNG == 4 then saradominsMurmur = saradominsMurmur + 1 zilyanasNotes = zilyanasNotes + 1 elseif uniqueTableRNG == 5 then saradominsHiss = saradominsHiss + 1 zilyanasNotes = zilyanasNotes + 1 end elseif mainTableRNG == 2 then if math.random(1, 4) == 1 then local godswordShardRNG = math.random(1, 3) if godswordShardRNG == 1 then godswordShard1 = godswordShard1 + 1 elseif godswordShardRNG == 2 then godswordShard2 = godswordShard2 + 1 elseif godswordShardRNG == 3 then godswordShard3 = godswordShard3 + 1 end end end if warpriestTableRNG == 1 then local warpriestRNG = math.random(1, 6) if warpriestRNG == 1 then warpriestOfSaradominHelm = warpriestOfSaradominHelm + 1 elseif warpriestRNG == 2 then warpriestOfSaradominCuirass = warpriestOfSaradominCuirass + 1 elseif warpriestRNG == 3 then warpriestOfSaradominGreaves = warpriestOfSaradominGreaves + 1 elseif warpriestRNG == 4 then warpriestOfSaradominGauntlets = warpriestOfSaradominGauntlets + 1 elseif warpriestRNG == 5 then warpriestOfSaradominBoots = warpriestOfSaradominBoots + 1 elseif warpriestRNG == 6 then warpriestOfSaradominCape = warpriestOfSaradominCape + 1 end end end if saradominSword >= 1 and armadylCrossbow >= 1 and offHandArmadylCrossbow >= 1 and saradominsWhisper >= 1 and saradominsMurmur >= 1 and saradominsHiss >= 1 and godswordShard1 >= 1 and godswordShard2 >= 1 and godswordShard3 >= 1 and saradominHilt >= 1 and zilyanasNotes >= 1 and warpriestOfSaradominHelm >= 1 and warpriestOfSaradominCuirass >= 1 and warpriestOfSaradominGreaves >= 1 and warpriestOfSaradominGauntlets >= 1 and warpriestOfSaradominBoots >= 1 and warpriestOfSaradominCape >= 1 and auburnLock >= 1 then bossLogCompletionCount = bossLogCompletionCount + 1 endKillCount = i       local totalKills = endKillCount - startKillCount if totalKills > mostKills then mostKills = totalKills end if totalKills < leastKills then leastKills = totalKills end currentKillCount = killCount startKillCount = i       saradominSword = argsSaradominSword armadylCrossbow = argsArmadylCrossbow offHandArmadylCrossbow = argsOffHandArmadylCrossbow saradominsWhisper = argsSaradominsWhisper saradominsMurmur = argsSaradominsMurmur saradominsHiss = argsSaradominsHiss godswordShard1 = argsGodswordShard1 godswordShard2 = argsGodswordShard2 godswordShard3 = argsGodswordShard3 saradominHilt = argsSaradominHilt zilyanasNotes = argsZilyanasNotes warpriestOfSaradominHelm = argsWarpriestOfSaradominHelm warpriestOfSaradominCuirass = argsWarpriestOfSaradominCuirass warpriestOfSaradominGreaves = argsWarpriestOfSaradominGreaves warpriestOfSaradominGauntlets = argsWarpriestOfSaradominGauntlets warpriestOfSaradominBoots = argsWarpriestOfSaradominBoots warpriestOfSaradominCape = argsWarpriestOfSaradominCape auburnLock = argsAuburnLock end end end local averageKills = kills / bossLogCompletionCount return results(kills, averageKills, leastKills, mostKills) end

function CorporealBeast(args) local kills = 1000000 local killCount = tonumber(args.killCount) local currentKillCount = killCount local startKillCount = 0 local endKillCount = 0 local leastKills = kills local mostKills = 0 local bossLogCompletionCount = 0 local spiritShieldDropRate = 512--Spirit shield 8/512 local holyElixirDropRate = 512--Holy elixir 3/512 local spectralSigilDropRate = 512--Spectral sigil 1/512 then 2/5 local arcaneSigilDropRate = 512--Arcane sigil 1/512 then 1/5 local elysianSigilDropRate = 512--Elysian sigil 1/512 then 1/5 local divineSigilDropRate = 512--Divine sigil 1/512 then 1/5 local petDropRate = 2500--Corporeal bone local petThreshold = 500 local argsSpiritShield = tonumber(args.spiritShield) local argsHolyElixir = tonumber(args.holyElixir) local argsSpectralSigil = tonumber(args.spectralSigil) local argsArcaneSigil = tonumber(args.arcaneSigil) local argsElysianSigil = tonumber(args.elysianSigil) local argsDivineSigil = tonumber(args.divineSigil) local argsCorporealBone = tonumber(args.corporealBone) local spiritShield = argsSpiritShield local holyElixir = argsHolyElixir local spectralSigil = argsSpectralSigil local arcaneSigil = argsArcaneSigil local elysianSigil = argsElysianSigil local divineSigil = argsDivineSigil local corporealBone = argsCorporealBone math.randomseed(os.time) for i=1,kills do   local mainTableRNG = math.random(1, 512) if mainTableRNG == 1 then local sigilTableRNG = math.random(1, 5) if sigilTableRNG == 1 then divineSigil = divineSigil + 1 elseif sigilTableRNG == 2 then elysianSigil = elysianSigil + 1 elseif sigilTableRNG == 3 then arcaneSigil = arcaneSigil + 1 elseif sigilTableRNG >= 4 and sigilTableRNG <= 5 then spectralSigil = spectralSigil + 1 end elseif mainTableRNG >= 2 and mainTableRNG <= 4 then holyElixir = holyElixir + 1 elseif mainTableRNG >= 5 and mainTableRNG <= 12 then spiritShield = spiritShield + 1 end corporealBone = corporealBone + petRNG(petDropRate, petThreshold, currentKillCount) currentKillCount = currentKillCount + 1 if spiritShield >=1 and holyElixir >= 1 and spectralSigil >= 1 and arcaneSigil >= 1 and elysianSigil >= 1 and divineSigil >= 1 and corporealBone >= 1 then bossLogCompletionCount = bossLogCompletionCount + 1 endKillCount = i     local totalKills = endKillCount - startKillCount if totalKills > mostKills then mostKills = totalKills end if totalKills < leastKills then leastKills = totalKills end currentKillCount = killCount startKillCount = i     spiritShield = argsSpiritShield holyElixir = argsHolyElixir spectralSigil = argsSpectralSigil arcaneSigil = argsArcaneSigil elysianSigil = argsElysianSigil divineSigil = argsDivineSigil corporealBone = argsCorporealBone end end local averageKills = kills / bossLogCompletionCount return results(kills, averageKills, leastKills, mostKills) end

function DagannothKings(args) local kills = 1000000 local killCount = tonumber(args.killCount) local currentKillCount = killCount local startKillCount = 0 local endKillCount = 0 local leastKills = kills local mostKills = 0 local bossLogCompletionCount = 0 local dragonHatchetDropRate = 128--Dragon hatchet local berserkerRingDropRate = 128--Berserker ring local warriorRingDropRate = 128--Warrior ring local seercullDropRate = 128--Seercull local archersRingDropRate = 128--Archers' ring local mudBattlestaffDropRate = 128--Mud battlestaff local seersRingDropRate = 128--Seers' ring local shrivelledDagannothClawDropRate = 2500--Shrivelled dagannoth claw local dagannothScaleDropRate = 2500--Dagannoth scale local dagannothEggDropRate = 2500--Dagannoth egg local petThreshold = 1500 local argsDragonHatchet = tonumber(args.dragonHatchet) local argsBerserkerRing = tonumber(args.berserkerRing) local argsWarriorRing = tonumber(args.warriorRing) local argsSeercull = tonumber(args.seercull) local argsArchersRing = tonumber(args.archersRing) local argsMudBattlestaff = tonumber(args.mudBattlestaff) local argsSeersRing = tonumber(args.seersRing) local argsShrivelledDagannothClaw = tonumber(args.shrivelledDagannothClaw) local argsDagannothScale = tonumber(args.dagannothScale) local argsDagannothEgg = tonumber(args.dagannothEgg) local dragonHatchet = argsDragonHatchet local berserkerRing = argsBerserkerRing local warriorRing = argsWarriorRing local seercull = argsSeercull local archersRing = argsArchersRing local mudBattlestaff = argsMudBattlestaff local seersRing = argsSeersRing local shrivelledDagannothClaw = argsShrivelledDagannothClaw local dagannothScale = argsDagannothScale local dagannothEgg = argsDagannothEgg math.randomseed(os.time) for i=1,kills do   if dragonHatchet == 0 or berserkerRing == 0 or warriorRing == 0 or shrivelledDagannothClaw == 0 then local mainTableRNG = math.random(1, 128) if mainTableRNG == 1 then dragonHatchet = dragonHatchet + 1 elseif mainTableRNG == 2 then berserkerRing = berserkerRing + 1 elseif mainTableRNG == 3 then warriorRing = warriorRing + 1 end shrivelledDagannothClaw = shrivelledDagannothClaw + petRNG(shrivelledDagannothClawDropRate, petThreshold, currentKillCount) elseif dragonHatchet == 0 or seercull == 0 or archersRing == 0 or dagannothScale == 0 then local mainTableRNG = math.random(1, 128) if mainTableRNG == 1 then dragonHatchet = dragonHatchet + 1 elseif mainTableRNG == 2 then seercull = seercull + 1 elseif mainTableRNG == 3 then archersRing = archersRing + 1 end dagannothScale = dagannothScale + petRNG(dagannothScaleDropRate, petThreshold, currentKillCount) elseif dragonHatchet == 0 or mudBattlestaff == 0 or seersRing == 0 or dagannothEgg == 0 then local mainTableRNG = math.random(1, 128) if mainTableRNG == 1 then dragonHatchet = dragonHatchet + 1 elseif mainTableRNG == 2 then mudBattlestaff = mudBattlestaff + 1 elseif mainTableRNG == 3 then seersRing = seersRing + 1 end dagannothEgg = dagannothEgg + petRNG(dagannothEggDropRate, petThreshold, currentKillCount) end if dragonHatchet >= 1 and berserkerRing >= 1 and warriorRing >= 1 and seercull >= 1 and archersRing >= 1 and mudBattlestaff >= 1 and seersRing >= 1 and shrivelledDagannothClaw >= 1 and dagannothScale >= 1 and dagannothEgg >= 1 then bossLogCompletionCount = bossLogCompletionCount + 1 endKillCount = i     local totalKills = endKillCount - startKillCount if totalKills > mostKills then mostKills = totalKills end if totalKills < leastKills then leastKills = totalKills end currentKillCount = killCount startKillCount = i     dragonHatchet = argsDragonHatchet berserkerRing = argsBerserkerRing warriorRing = argsWarriorRing seercull = argsSeercull archersRing = argsArchersRing mudBattlestaff = argsMudBattlestaff seersRing = argsSeersRing shrivelledDagannothClaw = argsShrivelledDagannothClaw dagannothScale = argsDagannothScale dagannothEgg = argsDagannothEgg end end local averageKills = kills / bossLogCompletionCount return results(kills, averageKills, leastKills, mostKills) end

function GeneralGraardor(args) local kills = 1000000 local killCount = tonumber(args.killCount) local currentKillCount = killCount local startKillCount = 0 local endKillCount = 0 local leastKills = kills local mostKills = 0 local bossLogCompletionCount = 0 local bandosWarshieldDropRate = 128--Bandos warshield 2/128 then 1/6 local bandosHelmetDropRate = 128--Bandos helmet 2/128 then 1/6 local bandosChestplateDropRate = 128--Bandos chestplate 2/128 then 1/6 local bandosTassetsDropRate = 128--Bandos tassets 2/128 then 1/6 local bandosGlovesDropRate = 128--Bandos gloves 2/128 then 1/6 local bandosBootsDropRate = 128--Bandos boots 2/128 then 1/6 local godswordShard1DropRate = 128--Godsword shard 1 1/128 then 1/2 then 1/3 local godswordShard2DropRate = 128--Godsword shard 2 1/128 then 1/2 then 1/3 local godswordShard3DropRate = 128--Godsword shard 3 1/128 then 1/2 then 1/3 local bandosHiltDropRate = 128--Bandos hilt 1/128 then 1/4 local theGloryOfGeneralGraardorDropRate = 128--The Glory of General Graardor local warpriestOfBandosHelmDropRate = 128--Warpriest of Bandos helm local warpriestOfBandosCuirassDropRate = 128--Warpriest of Bandos cuirass local warpriestOfBandosGreavesDropRate = 128--Warpriest of Bandos greaves local warpriestOfBandosGauntletsDropRate = 128--Warpriest of Bandos gauntlets local warpriestOfBandosBootsDropRate = 128--Warpriest of Bandos boots local warpriestOfBandosCapeDropRate = 128--Warpriest of Bandos cape local petDropRate = 5000--Decaying tooth local petHMDropRate = 1000--Decaying tooth HM local petThreshold = 1000 local argsHardMode = tonumber(args.hardModeGeneralGraardor) local argsBodyguards = tonumber(args.sergeantStrongstack) + tonumber(args.sergeantGrimspike) + tonumber(args.sergeantSteelwill) local argsBandosWarshield = tonumber(args.bandosWarshield) local argsBandosHelmet = tonumber(args.bandosHelmet) local argsBandosChestplate = tonumber(args.bandosChestplate) local argsBandosTassets = tonumber(args.bandosTassets) local argsBandosGloves = tonumber(args.bandosGloves) local argsBandosBoots = tonumber(args.bandosBoots) local argsGodswordShard1 = tonumber(args.godswordShard1GeneralGraardor) local argsGodswordShard2 = tonumber(args.godswordShard2GeneralGraardor) local argsGodswordShard3 = tonumber(args.godswordShard3GeneralGraardor) local argsBandosHilt = tonumber(args.bandosHilt) local argsTheGloryOfGeneralGraardor = tonumber(args.theGloryOfGeneralGraardor) local argsWarpriestOfBandosHelm = tonumber(args.warpriestOfBandosHelm) local argsWarpriestOfBandosCuirass = tonumber(args.warpriestOfBandosCuirass) local argsWarpriestOfBandosGreaves = tonumber(args.warpriestOfBandosGreaves) local argsWarpriestOfBandosGauntlets = tonumber(args.warpriestOfBandosGauntlets) local argsWarpriestOfBandosBoots = tonumber(args.warpriestOfBandosBoots) local argsWarpriestOfBandosCape = tonumber(args.warpriestOfBandosCape) local argsDecayingTooth = tonumber(args.decayingTooth) local bandosWarshield = argsBandosWarshield local bandosHelmet = argsBandosHelmet local bandosChestplate = argsBandosChestplate local bandosTassets = argsBandosTassets local bandosGloves = argsBandosGloves local bandosBoots = argsBandosBoots local godswordShard1 = argsGodswordShard1 local godswordShard2 = argsGodswordShard2 local godswordShard3 = argsGodswordShard3 local bandosHilt = argsBandosHilt local theGloryOfGeneralGraardor = argsTheGloryOfGeneralGraardor local warpriestOfBandosHelm = argsWarpriestOfBandosHelm local warpriestOfBandosCuirass = argsWarpriestOfBandosCuirass local warpriestOfBandosGreaves = argsWarpriestOfBandosGreaves local warpriestOfBandosGauntlets = argsWarpriestOfBandosGauntlets local warpriestOfBandosBoots = argsWarpriestOfBandosBoots local warpriestOfBandosCape = argsWarpriestOfBandosCape local decayingTooth = argsDecayingTooth math.randomseed(os.time) if argsHardMode == 1 then for i=1,kills do     local mainTableRNG = math.random(1, 128) local warpriestTableRNG = math.random(1, 128) if mainTableRNG >= 1 and mainTableRNG <= 2 then local uniqueTableRNG = math.random(1, 6) if uniqueTableRNG == 1 then bandosWarshield = bandosWarshield + 1 theGloryOfGeneralGraardor = theGloryOfGeneralGraardor + 1 elseif uniqueTableRNG == 2 then bandosHelmet = bandosHelmet + 1 theGloryOfGeneralGraardor = theGloryOfGeneralGraardor + 1 elseif uniqueTableRNG == 3 then bandosChestplate = bandosChestplate + 1 theGloryOfGeneralGraardor = theGloryOfGeneralGraardor + 1 elseif uniqueTableRNG == 4 then bandosTassets = bandosTassets + 1 theGloryOfGeneralGraardor = theGloryOfGeneralGraardor + 1 elseif uniqueTableRNG == 5 then bandosGloves = bandosGloves + 1 theGloryOfGeneralGraardor = theGloryOfGeneralGraardor + 1 elseif uniqueTableRNG == 6 then bandosBoots = bandosBoots + 1 theGloryOfGeneralGraardor = theGloryOfGeneralGraardor + 1 end elseif mainTableRNG == 3 then if math.random(1, 2) == 1 then local godswordShardRNG = math.random(1, 3) if godswordShardRNG == 1 then godswordShard1 = godswordShard1 + 1 elseif godswordShardRNG == 2 then godswordShard2 = godswordShard2 + 1 elseif godswordShardRNG == 3 then godswordShard3 = godswordShard3 + 1 end end elseif mainTableRNG == 4 then if math.random(1, 4) == 1 then bandosHilt = bandosHilt + 1 theGloryOfGeneralGraardor = theGloryOfGeneralGraardor + 1 end end if warpriestTableRNG == 1 then local warpriestRNG = math.random(1, 6) if warpriestRNG == 1 then warpriestOfBandosHelm = warpriestOfBandosHelm + 1 elseif warpriestRNG == 2 then warpriestOfBandosCuirass = warpriestOfBandosCuirass + 1 elseif warpriestRNG == 3 then warpriestOfBandosGreaves = warpriestOfBandosGreaves + 1 elseif warpriestRNG == 4 then warpriestOfBandosGauntlets = warpriestOfBandosGauntlets + 1 elseif warpriestRNG == 5 then warpriestOfBandosBoots = warpriestOfBandosBoots + 1 elseif warpriestRNG == 6 then warpriestOfBandosCape = warpriestOfBandosCape + 1 end end decayingTooth = decayingTooth + petRNG(petHMDropRate, petThreshold, currentKillCount) for i=1, argsBodyguards do       local mainTableRNG = math.random(1, 128) local warpriestTableRNG = math.random(1, 128) if mainTableRNG == 1 then local uniqueTableRNG = math.random(1, 384) if uniqueTableRNG == 1 then bandosWarshield = bandosWarshield + 1 theGloryOfGeneralGraardor = theGloryOfGeneralGraardor + 1 elseif uniqueTableRNG == 2 then bandosHelmet = bandosHelmet + 1 theGloryOfGeneralGraardor = theGloryOfGeneralGraardor + 1 elseif uniqueTableRNG == 3 then bandosChestplate = bandosChestplate + 1 theGloryOfGeneralGraardor = theGloryOfGeneralGraardor + 1 elseif uniqueTableRNG == 4 then bandosTassets = bandosTassets + 1 theGloryOfGeneralGraardor = theGloryOfGeneralGraardor + 1 elseif uniqueTableRNG == 5 then bandosGloves = bandosGloves + 1 theGloryOfGeneralGraardor = theGloryOfGeneralGraardor + 1 elseif uniqueTableRNG == 6 then bandosBoots = bandosBoots + 1 theGloryOfGeneralGraardor = theGloryOfGeneralGraardor + 1 end elseif mainTableRNG == 2 then if math.random(1, 4) == 1 then local godswordShardRNG = math.random(1, 3) if godswordShardRNG == 1 then godswordShard1 = godswordShard1 + 1 elseif godswordShardRNG == 2 then godswordShard2 = godswordShard2 + 1 elseif godswordShardRNG == 3 then godswordShard3 = godswordShard3 + 1 end end end if warpriestTableRNG == 1 then local warpriestRNG = math.random(1, 6) if warpriestRNG == 1 then warpriestOfBandosHelm = warpriestOfBandosHelm + 1 elseif warpriestRNG == 2 then warpriestOfBandosCuirass = warpriestOfBandosCuirass + 1 elseif warpriestRNG == 3 then warpriestOfBandosGreaves = warpriestOfBandosGreaves + 1 elseif warpriestRNG == 4 then warpriestOfBandosGauntlets = warpriestOfBandosGauntlets + 1 elseif warpriestRNG == 5 then warpriestOfBandosBoots = warpriestOfBandosBoots + 1 elseif warpriestRNG == 6 then warpriestOfBandosCape = warpriestOfBandosCape + 1 end end end if bandosWarshield >= 1 and bandosHelmet >= 1 and bandosChestplate >= 1 and bandosTassets >= 1 and bandosGloves >= 1 and bandosBoots >= 1 and godswordShard1 >= 1 and godswordShard2 >= 1 and godswordShard3 >= 1 and bandosHilt >= 1 and theGloryOfGeneralGraardor >= 1 and warpriestOfBandosHelm >= 1 and warpriestOfBandosCuirass >= 1 and warpriestOfBandosGreaves >= 1 and warpriestOfBandosGauntlets >= 1 and warpriestOfBandosBoots >= 1 and warpriestOfBandosCape >= 1 and decayingTooth >= 1 then bossLogCompletionCount = bossLogCompletionCount + 1 endKillCount = i       local totalKills = endKillCount - startKillCount if totalKills > mostKills then mostKills = totalKills end if totalKills < leastKills then leastKills = totalKills end currentKillCount = killCount startKillCount = i       bandosWarshield = argsBandosWarshield bandosHelmet = argsBandosHelmet bandosChestplate = argsBandosChestplate bandosTassets = argsBandosTassets bandosGloves = argsBandosGloves bandosBoots = argsBandosBoots godswordShard1 = argsGodswordShard1 godswordShard2 = argsGodswordShard2 godswordShard3 = argsGodswordShard3 bandosHilt = argsBandosHilt theGloryOfGeneralGraardor = argsTheGloryOfGeneralGraardor warpriestOfBandosHelm = argsWarpriestOfBandosHelm warpriestOfBandosCuirass = argsWarpriestOfBandosCuirass warpriestOfBandosGreaves = argsWarpriestOfBandosGreaves warpriestOfBandosGauntlets = argsWarpriestOfBandosGauntlets warpriestOfBandosBoots = argsWarpriestOfBandosBoots warpriestOfBandosCape = argsWarpriestOfBandosCape decayingTooth = argsDecayingTooth end end else for i=1,kills do     local mainTableRNG = math.random(1, 128) local warpriestTableRNG = math.random(1, 128) if mainTableRNG >= 1 and mainTableRNG <= 2 then local uniqueTableRNG = math.random(1, 6) if uniqueTableRNG == 1 then bandosWarshield = bandosWarshield + 1 theGloryOfGeneralGraardor = theGloryOfGeneralGraardor + 1 elseif uniqueTableRNG == 2 then bandosHelmet = bandosHelmet + 1 theGloryOfGeneralGraardor = theGloryOfGeneralGraardor + 1 elseif uniqueTableRNG == 3 then bandosChestplate = bandosChestplate + 1 theGloryOfGeneralGraardor = theGloryOfGeneralGraardor + 1 elseif uniqueTableRNG == 4 then bandosTassets = bandosTassets + 1 theGloryOfGeneralGraardor = theGloryOfGeneralGraardor + 1 elseif uniqueTableRNG == 5 then bandosGloves = bandosGloves + 1 theGloryOfGeneralGraardor = theGloryOfGeneralGraardor + 1 elseif uniqueTableRNG == 6 then bandosBoots = bandosBoots + 1 theGloryOfGeneralGraardor = theGloryOfGeneralGraardor + 1 end elseif mainTableRNG == 3 then if math.random(1, 2) == 1 then local godswordShardRNG = math.random(1, 3) if godswordShardRNG == 1 then godswordShard1 = godswordShard1 + 1 elseif godswordShardRNG == 2 then godswordShard2 = godswordShard2 + 1 elseif godswordShardRNG == 3 then godswordShard3 = godswordShard3 + 1 end end elseif mainTableRNG == 4 then if math.random(1, 4) == 1 then bandosHilt = bandosHilt + 1 theGloryOfGeneralGraardor = theGloryOfGeneralGraardor + 1 end end if warpriestTableRNG == 1 then local warpriestRNG = math.random(1, 6) if warpriestRNG == 1 then warpriestOfBandosHelm = warpriestOfBandosHelm + 1 elseif warpriestRNG == 2 then warpriestOfBandosCuirass = warpriestOfBandosCuirass + 1 elseif warpriestRNG == 3 then warpriestOfBandosGreaves = warpriestOfBandosGreaves + 1 elseif warpriestRNG == 4 then warpriestOfBandosGauntlets = warpriestOfBandosGauntlets + 1 elseif warpriestRNG == 5 then warpriestOfBandosBoots = warpriestOfBandosBoots + 1 elseif warpriestRNG == 6 then warpriestOfBandosCape = warpriestOfBandosCape + 1 end end decayingTooth = decayingTooth + petRNG(petDropRate, petThreshold, currentKillCount) for i=1, argsBodyguards do       local mainTableRNG = math.random(1, 128) local warpriestTableRNG = math.random(1, 128) if mainTableRNG == 1 then local uniqueTableRNG = math.random(1, 384) if uniqueTableRNG == 1 then bandosWarshield = bandosWarshield + 1 theGloryOfGeneralGraardor = theGloryOfGeneralGraardor + 1 elseif uniqueTableRNG == 2 then bandosHelmet = bandosHelmet + 1 theGloryOfGeneralGraardor = theGloryOfGeneralGraardor + 1 elseif uniqueTableRNG == 3 then bandosChestplate = bandosChestplate + 1 theGloryOfGeneralGraardor = theGloryOfGeneralGraardor + 1 elseif uniqueTableRNG == 4 then bandosTassets = bandosTassets + 1 theGloryOfGeneralGraardor = theGloryOfGeneralGraardor + 1 elseif uniqueTableRNG == 5 then bandosGloves = bandosGloves + 1 theGloryOfGeneralGraardor = theGloryOfGeneralGraardor + 1 elseif uniqueTableRNG == 6 then bandosBoots = bandosBoots + 1 theGloryOfGeneralGraardor = theGloryOfGeneralGraardor + 1 end elseif mainTableRNG == 2 then if math.random(1, 4) == 1 then local godswordShardRNG = math.random(1, 3) if godswordShardRNG == 1 then godswordShard1 = godswordShard1 + 1 elseif godswordShardRNG == 2 then godswordShard2 = godswordShard2 + 1 elseif godswordShardRNG == 3 then godswordShard3 = godswordShard3 + 1 end end end if warpriestTableRNG == 1 then local warpriestRNG = math.random(1, 6) if warpriestRNG == 1 then warpriestOfBandosHelm = warpriestOfBandosHelm + 1 elseif warpriestRNG == 2 then warpriestOfBandosCuirass = warpriestOfBandosCuirass + 1 elseif warpriestRNG == 3 then warpriestOfBandosGreaves = warpriestOfBandosGreaves + 1 elseif warpriestRNG == 4 then warpriestOfBandosGauntlets = warpriestOfBandosGauntlets + 1 elseif warpriestRNG == 5 then warpriestOfBandosBoots = warpriestOfBandosBoots + 1 elseif warpriestRNG == 6 then warpriestOfBandosCape = warpriestOfBandosCape + 1 end end end if bandosWarshield >= 1 and bandosHelmet >= 1 and bandosChestplate >= 1 and bandosTassets >= 1 and bandosGloves >= 1 and bandosBoots >= 1 and godswordShard1 >= 1 and godswordShard2 >= 1 and godswordShard3 >= 1 and bandosHilt >= 1 and theGloryOfGeneralGraardor >= 1 and warpriestOfBandosHelm >= 1 and warpriestOfBandosCuirass >= 1 and warpriestOfBandosGreaves >= 1 and warpriestOfBandosGauntlets >= 1 and warpriestOfBandosBoots >= 1 and warpriestOfBandosCape >= 1 and decayingTooth >= 1 then bossLogCompletionCount = bossLogCompletionCount + 1 endKillCount = i       local totalKills = endKillCount - startKillCount if totalKills > mostKills then mostKills = totalKills end if totalKills < leastKills then leastKills = totalKills end currentKillCount = killCount startKillCount = i       bandosWarshield = argsBandosWarshield bandosHelmet = argsBandosHelmet bandosChestplate = argsBandosChestplate bandosTassets = argsBandosTassets bandosGloves = argsBandosGloves bandosBoots = argsBandosBoots godswordShard1 = argsGodswordShard1 godswordShard2 = argsGodswordShard2 godswordShard3 = argsGodswordShard3 bandosHilt = argsBandosHilt theGloryOfGeneralGraardor = argsTheGloryOfGeneralGraardor warpriestOfBandosHelm = argsWarpriestOfBandosHelm warpriestOfBandosCuirass = argsWarpriestOfBandosCuirass warpriestOfBandosGreaves = argsWarpriestOfBandosGreaves warpriestOfBandosGauntlets = argsWarpriestOfBandosGauntlets warpriestOfBandosBoots = argsWarpriestOfBandosBoots warpriestOfBandosCape = argsWarpriestOfBandosCape decayingTooth = argsDecayingTooth end end end local averageKills = kills / bossLogCompletionCount return results(kills, averageKills, leastKills, mostKills) end

function GiantMole(args) local kills = 1000000 local killCount = tonumber(args.killCount) local currentKillCount = killCount local startKillCount = 0 local endKillCount = 0 local leastKills = kills local mostKills = 0 local bossLogCompletionCount = 0 local clingyMoleDropRate = 52--Clingy mole 5/52 local clingyMoleHMDropRate = 52--Clingy mole HM 10/52 local dragon2hSwordDropRate = 52--Dragon 2h sword local dragon2hSwordHMDropRate = 52--Dragon 2h sword HM 2/52 local petDropRate = 2500--Rotten fang local petHMDropRate = 500--Rotten fang HM local petThreshold = 500 local argsHardMode = tonumber(args.hardModeGiantMole) local argsClingyMole = tonumber(args.clingyMole) local argsDragon2hSword = tonumber(args.dragon2hSwordGiantMole) local argsRottenFang = tonumber(args.rottenFang) local clingyMole = argsClingyMole local dragon2hSword = argsDragon2hSword local rottenFang = argsRottenFang math.randomseed(os.time) if argsHardMode == 1 then for i=1,kills do     local clingyMoleHMRNG = math.random(1, clingyMoleHMDropRate) local dragon2hSwordHMRNG = math.random(1, dragon2hSwordHMDropRate) if clingyMoleHMRNG >= 1 and clingyMoleHMRNG <= 10 then clingyMole = clingyMole + 1 end if dragon2hSwordHMRNG >= 1 and dragon2hSwordHMRNG <= 2 then dragon2hSword = dragon2hSword + 1 end rottenFang = rottenFang + petRNG(petHMDropRate, petThreshold, currentKillCount) if clingyMole >= 1 and dragon2hSword >= 1 and rottenFang >= 1 then bossLogCompletionCount = bossLogCompletionCount + 1 endKillCount = i       local totalKills = endKillCount - startKillCount if totalKills > mostKills then mostKills = totalKills end if totalKills < leastKills then leastKills = totalKills end currentKillCount = killCount startKillCount = i       clingyMole = argsClingyMole dragon2hSword = argsDragon2hSword rottenFang = argsRottenFang end end else for i=1,kills do     local clingyMoleRNG = math.random(1, clingyMoleDropRate) local dragon2hSwordRNG = math.random(1, dragon2hSwordDropRate) if clingyMoleRNG >= 1 and clingyMoleRNG <= 5 then clingyMole = clingyMole + 1 end if dragon2hSwordRNG == 1 then dragon2hSword = dragon2hSword + 1 end rottenFang = rottenFang + petRNG(petDropRate, petThreshold, currentKillCount) if clingyMole >= 1 and dragon2hSword >= 1 and rottenFang >= 1 then bossLogCompletionCount = bossLogCompletionCount + 1 endKillCount = i       local totalKills = endKillCount - startKillCount if totalKills > mostKills then mostKills = totalKills end if totalKills < leastKills then leastKills = totalKills end currentKillCount = killCount startKillCount = i       clingyMole = argsClingyMole dragon2hSword = argsDragon2hSword rottenFang = argsRottenFang end end end local averageKills = kills / bossLogCompletionCount return results(kills, averageKills, leastKills, mostKills) end

function KalphiteKing(args) local kills = 1000000 local killCount = tonumber(args.killCount) local currentKillCount = killCount local startKillCount = 0 local endKillCount = 0 local leastKills = kills local mostKills = 0 local bossLogCompletionCount = 0 local drygoreRapierDropRate = 128--Drygore rapier 1/128 then 1/2 local drygoreLongswordDropRate = 128--Drygore longsword 1/128 then 1/2 local drygoreMaceDropRate = 128--Drygore mace 1/128 then 1/2 local offHandDrygoreRapierDropRate = 128--Off-hand drygore rapier 1/128 then 1/2 local offHandDrygoreLongswordDropRate = 128--Off-hand drygore longsword 1/128 then 1/2 local offHandDrygoreMaceDropRate = 128--Off-hand drygore mace 1/128 then 1/2 local perfectChitinDropRate = 50--Perfect chitin local petDropRate = 2000--Kalphite claw local petThreshold = 400 local argsDrygoreRapier = tonumber(args.drygoreRapier) local argsDrygoreLongsword = tonumber(args.drygoreLongsword) local argsDrygoreMace = tonumber(args.drygoreMace) local argsOffHandDrygoreRapier = tonumber(args.offHandDrygoreRapier) local argsOffHandDrygoreLongsword = tonumber(args.offHandDrygoreLongsword) local argsOffHandDrygoreMace = tonumber(args.offHandDrygoreMace) local argsPerfectChitin = tonumber(args.perfectChitin) local argsKalphiteClaw = tonumber(args.kalphiteClaw) local drygoreRapier = argsDrygoreRapier local drygoreLongsword = argsDrygoreLongsword local drygoreMace = argsDrygoreMace local offHandDrygoreRapier = argsOffHandDrygoreRapier local offHandDrygoreLongsword = argsOffHandDrygoreLongsword local offHandDrygoreMace = argsOffHandDrygoreMace local perfectChitin = argsPerfectChitin local kalphiteClaw = argsKalphiteClaw math.randomseed(os.time) for i=1,kills do   local mainTableRNG = math.random(1, 128) local perfectChitinRNG = math.random(1, perfectChitinDropRate) if mainTableRNG == 1 then if math.random(1, 2) == 1 then drygoreRapier = drygoreRapier + 1 else offHandDrygoreRapier = offHandDrygoreRapier + 1 end elseif mainTableRNG == 2 then if math.random(1, 2) == 1 then drygoreLongsword = drygoreLongsword + 1 else offHandDrygoreLongsword = offHandDrygoreLongsword + 1 end elseif mainTableRNG == 3 then if math.random(1, 2) == 1 then drygoreMace = drygoreMace + 1 else offHandDrygoreMace = offHandDrygoreMace + 1 end end if perfectChitinRNG == 1 then perfectChitin = perfectChitin + 1 end kalphiteClaw = kalphiteClaw + petRNG(petDropRate, petThreshold, currentKillCount) currentKillCount = currentKillCount + 1 if drygoreRapier >=1 and drygoreLongsword >= 1 and drygoreMace >= 1 and offHandDrygoreRapier >= 1 and offHandDrygoreLongsword >= 1 and offHandDrygoreMace >= 1 and perfectChitin >= 1 and kalphiteClaw >= 1 then bossLogCompletionCount = bossLogCompletionCount + 1 endKillCount = i     local totalKills = endKillCount - startKillCount if totalKills > mostKills then mostKills = totalKills end if totalKills < leastKills then leastKills = totalKills end currentKillCount = killCount startKillCount = i     drygoreRapier = argsDrygoreRapier drygoreLongsword = argsDrygoreLongsword drygoreMace = argsDrygoreMace offHandDrygoreRapier = argsOffHandDrygoreRapier offHandDrygoreLongsword = argsOffHandDrygoreLongsword offHandDrygoreMace = argsOffHandDrygoreMace perfectChitin = argsPerfectChitin kalphiteClaw = argsKalphiteClaw end end local averageKills = kills / bossLogCompletionCount return results(kills, averageKills, leastKills, mostKills) end

function KalphiteQueen(args) local kills = 1000000 local killCount = tonumber(args.killCount) local currentKillCount = killCount local startKillCount = 0 local endKillCount = 0 local leastKills = kills local mostKills = 0 local bossLogCompletionCount = 0 local dragonChainbodyDropRate = 128--Dragon chainbody local dragon2hSwordDropRate = 128--Dragon 2h sword 1/128 then 1/2 local dragon2hSwordHMDropRate = 128--Dragon 2h sword HM local kalphiteQueenHeadDropRate = 128--Kalphite queen head local petDropRate = 2500--Kalphite egg local petThreshold = 500 local argsExiledKalphiteQueen = tonumber(args.exiledKalphiteQueen) local argsDragonChainbody = tonumber(args.dragonChainbody) local argsDragon2hSword = tonumber(args.dragon2hSwordKalphiteQueen) local argsKalphiteQueenHead = tonumber(args.kalphiteQueenHead) local argsKalphiteEgg = tonumber(args.kalphiteEgg) local dragonChainbody = argsDragonChainbody local dragon2hSword = argsDragon2hSword local kalphiteQueenHead = argsKalphiteQueenHead local kalphiteEgg = argsKalphiteEgg math.randomseed(os.time) if argsExiledKalphiteQueen == 1 then for i=1,kills do     local mainTableRNG = math.random(1, 128) local kalphiteQueenHeadRNG = math.random(1, kalphiteQueenHeadDropRate) if mainTableRNG == 1 then dragonChainbody = dragonChainbody +1 elseif mainTableRNG == 2 then dragon2hSword = dragon2hSword +1 end if kalphiteQueenHeadRNG == 1 then kalphiteQueenHead = kalphiteQueenHead +1 end kalphiteEgg = kalphiteEgg + petRNG(petDropRate, petThreshold, currentKillCount) currentKillCount = currentKillCount + 1 if kalphiteEgg >= 1 and dragonChainbody >= 1 and dragon2hSword >= 1 and kalphiteQueenHead >= 1 then bossLogCompletionCount = bossLogCompletionCount + 1 endKillCount = i       local totalKills = endKillCount - startKillCount if totalKills > mostKills then mostKills = totalKills end if totalKills < leastKills then leastKills = totalKills end currentKillCount = killCount startKillCount = i       kalphiteEgg = argsKalphiteEgg dragonChainbody = argsDragonChainbody dragon2hSword = argsDragon2hSword kalphiteQueenHead = argsKalphiteQueenHead end end else for i=1,kills do     local mainTableRNG = math.random(1, 128) local kalphiteQueenHeadRNG = math.random(1, kalphiteQueenHeadDropRate) if mainTableRNG == 1 then dragonChainbody = dragonChainbody +1 elseif mainTableRNG == 2 then if math.random(1, 2) == 1 then dragon2hSword = dragon2hSword +1 end end if kalphiteQueenHeadRNG == 1 then kalphiteQueenHead = kalphiteQueenHead +1 end kalphiteEgg = kalphiteEgg + petRNG(petDropRate, petThreshold, currentKillCount) currentKillCount = currentKillCount + 1 if kalphiteEgg >= 1 and dragonChainbody >= 1 and dragon2hSword >= 1 and kalphiteQueenHead >= 1 then bossLogCompletionCount = bossLogCompletionCount + 1 endKillCount = i       local totalKills = endKillCount - startKillCount if totalKills > mostKills then mostKills = totalKills end if totalKills < leastKills then leastKills = totalKills end currentKillCount = killCount startKillCount = i       kalphiteEgg = argsKalphiteEgg dragonChainbody = argsDragonChainbody dragon2hSword = argsDragon2hSword kalphiteQueenHead = argsKalphiteQueenHead end end end local averageKills = kills / bossLogCompletionCount return results(kills, averageKills, leastKills, mostKills) end

function KingBlackDragon(args) local kills = 1000000 local killCount = tonumber(args.killCount) local currentKillCount = killCount local startKillCount = 0 local endKillCount = 0 local leastKills = kills local mostKills = 0 local bossLogCompletionCount = 0 local dragonRiderGlovesDropRate = 500--Dragon rider gloves 1/500 then 1/4 local dragonRiderBootsDropRate = 500--Dragon rider boots 1/500 then 1/4 local dragonKiteOrnamentKitOrDropRate = 500--Dragon kite ornament kit (or) 1/500 then 1/4 local dragonKiteOrnamentKitSpDropRate = 500--Dragon kite ornament kit (sp) 1/500 then 1/4 local lastRidersDropRate = 1000--Last riders -1 denominator for every kill local kingBlackDragonHeadDropRate = 1280--King black dragon head 10/1280 local draconicVisageDropRate = 5000--Draconic visage local petDropRate = 2500--King black dragon scale local petThreshold = 500 local argsDragonRiderGloves = tonumber(args.dragonRiderGloves) local argsDragonRiderBoots = tonumber(args.dragonRiderBoots) local argsDragonKiteOrnamentKitOr = tonumber(args.dragonKiteOrnamentKitOr) local argsDragonKiteOrnamentKitSp = tonumber(args.dragonKiteOrnamentKitSp) local argsLastRiders = tonumber(args.lastRiders) local argsKingBlackDragonHead = tonumber(args.kingBlackDragonHead) local argsDraconicVisage = tonumber(args.draconicVisageKingBlackDragon) local argsKingBlackDragonScale = tonumber(args.kingBlackDragonScale) local dragonRiderGloves = argsDragonRiderGloves local dragonRiderBoots = argsDragonRiderBoots local dragonKiteOrnamentKitOr = argsDragonKiteOrnamentKitOr local dragonKiteOrnamentKitSp = argsDragonKiteOrnamentKitSp local lastRiders = argsLastRiders local kingBlackDragonHead = argsKingBlackDragonHead local draconicVisage = argsDraconicVisage local kingBlackDragonScale = argsKingBlackDragonScale math.randomseed(os.time) for i=1,kills do   local mainTableRNG = math.random(1, 500) local kingBlackDragonHeadRNG = math.random(1, kingBlackDragonHeadDropRate) local draconicVisageRNG = math.random(1, draconicVisageDropRate) if mainTableRNG == 1 then local uniqueTableRNG = math.random(1,4) if uniqueTableRNG == 1 then dragonRiderGloves = dragonRiderGloves + 1 elseif uniqueTableRNG == 2 then dragonRiderBoots = dragonRiderBoots + 1 elseif uniqueTableRNG == 3 then dragonKiteOrnamentKitOr = dragonKiteOrnamentKitOr + 1 elseif uniqueTableRNG == 4 then dragonKiteOrnamentKitSp = dragonKiteOrnamentKitSp + 1 end end if lastRidersDropRate - currentKillCount >= 1 then local lastRidersRNG = math.random(1, lastRidersDropRate - currentKillCount) if lastRidersRNG == 1 then lastRiders = lastRiders + 1 end else lastRiders = lastRiders + 1 end if kingBlackDragonHeadRNG >= 1 and kingBlackDragonHeadRNG <= 10 then kingBlackDragonHead = kingBlackDragonHead + 1 end if draconicVisageRNG == 1 then draconicVisage = draconicVisage + 1 end kingBlackDragonScale = kingBlackDragonScale + petRNG(petDropRate, petThreshold, currentKillCount) currentKillCount = currentKillCount + 1 if dragonRiderGloves >= 1 and dragonRiderBoots >= 1 and dragonKiteOrnamentKitOr >= 1 and dragonKiteOrnamentKitSp >= 1 and lastRiders >= 1 and kingBlackDragonHead >= 1 and draconicVisage >= 1 and kingBlackDragonScale >= 1 then bossLogCompletionCount = bossLogCompletionCount + 1 endKillCount = i     local totalKills = endKillCount - startKillCount if totalKills > mostKills then mostKills = totalKills end if totalKills < leastKills then leastKills = totalKills end currentKillCount = killCount startKillCount = i     dragonRiderGloves = argsDragonRiderGloves dragonRiderBoots = argsDragonRiderBoots dragonKiteOrnamentKitOr = argsDragonKiteOrnamentKitOr dragonKiteOrnamentKitSp = argsDragonKiteOrnamentKitSp lastRiders = argsLastRiders kingBlackDragonHead = argsKingBlackDragonHead draconicVisage = argsDraconicVisage kingBlackDragonScale = argsKingBlackDragonScale end end local averageKills = kills / bossLogCompletionCount return results(kills, averageKills, leastKills, mostKills) end

function KreeArra(args) local kills = 1000000 local killCount = tonumber(args.killCount) local currentKillCount = killCount local startKillCount = 0 local endKillCount = 0 local leastKills = kills local mostKills = 0 local bossLogCompletionCount = 0 local armadylBucklerDropRate = 128--Armadyl buckler 2/128 then 1/6 local armadylHelmetDropRate = 128--Armadyl helmet 2/128 then 1/6 local armadylChestplateDropRate = 128--Armadyl chestplate 2/128 then 1/6 local armadylChainskirtDropRate = 128--Armadyl chainskirt 2/128 then 1/6 local armadylGlovesDropRate = 128--Armadyl gloves 2/128 then 1/6 local armadylBootsDropRate = 128--Armadyl boots 2/128 then 1/6 local godswordShard1DropRate = 128--Godsword shard 1 1/128 then 1/2 then 1/3 local godswordShard2DropRate = 128--Godsword shard 2 1/128 then 1/2 then 1/3 local godswordShard3DropRate = 128--Godsword shard 3 1/128 then 1/2 then 1/3 local armadylHiltDropRate = 128--Armadyl hilt 1/128 then 1/4 local armadylsAssaultDropRate = 128--Armadyl's Assault local warpriestOfArmadylHelmDropRate = 128--Warpriest of Armadyl helm local warpriestOfArmadylCuirassDropRate = 128--Warpriest of Armadyl cuirass local warpriestOfArmadylGreavesDropRate = 128--Warpriest of Armadyl greaves local warpriestOfArmadylGauntletsDropRate = 128--Warpriest of Armadyl gauntlets local warpriestOfArmadylBootsDropRate = 128--Warpriest of Armadyl boots local warpriestOfArmadylCapeDropRate = 128--Warpriest of Armadyl cape local petDropRate = 5000--Giant feather local petHMDropRate = 1000--Giant feather HM local petThreshold = 1000 local argsHardMode = tonumber(args.hardModeKreeArra) local argsBodyguards = tonumber(args.flightKilisa) + tonumber(args.flockleaderGeerin) + tonumber(args.wingmanSkree) local argsArmadylBuckler = tonumber(args.armadylBuckler) local argsArmadylHelmet = tonumber(args.armadylHelmet) local argsArmadylChestplate = tonumber(args.armadylChestplate) local argsArmadylChainskirt = tonumber(args.armadylChainskirt) local argsArmadylGloves = tonumber(args.armadylGloves) local argsArmadylBoots = tonumber(args.armadylBoots) local argsGodswordShard1 = tonumber(args.godswordShard1KreeArra) local argsGodswordShard2 = tonumber(args.godswordShard2KreeArra) local argsGodswordShard3 = tonumber(args.godswordShard3KreeArra) local argsArmadylHilt = tonumber(args.armadylHilt) local argsArmadylsAssault = tonumber(args.armadylsAssault) local argsWarpriestOfArmadylHelm = tonumber(args.warpriestOfArmadylHelm) local argsWarpriestOfArmadylCuirass = tonumber(args.warpriestOfArmadylCuirass) local argsWarpriestOfArmadylGreaves = tonumber(args.warpriestOfArmadylGreaves) local argsWarpriestOfArmadylGauntlets = tonumber(args.warpriestOfArmadylGauntlets) local argsWarpriestOfArmadylBoots = tonumber(args.warpriestOfArmadylBoots) local argsWarpriestOfArmadylCape = tonumber(args.warpriestOfArmadylCape) local argsGiantFeather = tonumber(args.giantFeather) local armadylBuckler = argsArmadylBuckler local armadylHelmet = argsArmadylHelmet local armadylChestplate = argsArmadylChestplate local armadylChainskirt = argsArmadylChainskirt local armadylGloves = argsArmadylGloves local armadylBoots = argsArmadylBoots local godswordShard1 = argsGodswordShard1 local godswordShard2 = argsGodswordShard2 local godswordShard3 = argsGodswordShard3 local armadylHilt = argsArmadylHilt local armadylsAssault = argsArmadylsAssault local warpriestOfArmadylHelm = argsWarpriestOfArmadylHelm local warpriestOfArmadylCuirass = argsWarpriestOfArmadylCuirass local warpriestOfArmadylGreaves = argsWarpriestOfArmadylGreaves local warpriestOfArmadylGauntlets = argsWarpriestOfArmadylGauntlets local warpriestOfArmadylBoots = argsWarpriestOfArmadylBoots local warpriestOfArmadylCape = argsWarpriestOfArmadylCape local giantFeather = argsGiantFeather math.randomseed(os.time) if argsHardMode == 1 then for i=1,kills do     local mainTableRNG = math.random(1, 128) local warpriestTableRNG = math.random(1, 128) if mainTableRNG >= 1 and mainTableRNG <= 2 then local uniqueTableRNG = math.random(1, 6) if uniqueTableRNG == 1 then armadylBuckler = armadylBuckler + 1 armadylsAssault = armadylsAssault + 1 elseif uniqueTableRNG == 2 then armadylHelmet = armadylHelmet + 1 armadylsAssault = armadylsAssault + 1 elseif uniqueTableRNG == 3 then armadylChestplate = armadylChestplate + 1 armadylsAssault = armadylsAssault + 1 elseif uniqueTableRNG == 4 then armadylChainskirt = armadylChainskirt + 1 armadylsAssault = armadylsAssault + 1 elseif uniqueTableRNG == 5 then armadylGloves = armadylGloves + 1 armadylsAssault = armadylsAssault + 1 elseif uniqueTableRNG == 6 then armadylBoots = armadylBoots + 1 armadylsAssault = armadylsAssault + 1 end elseif mainTableRNG == 3 then if math.random(1, 2) == 1 then local godswordShardRNG = math.random(1, 3) if godswordShardRNG == 1 then godswordShard1 = godswordShard1 + 1 elseif godswordShardRNG == 2 then godswordShard2 = godswordShard2 + 1 elseif godswordShardRNG == 3 then godswordShard3 = godswordShard3 + 1 end end elseif mainTableRNG == 4 then if math.random(1, 4) == 1 then armadylHilt = armadylHilt + 1 armadylsAssault = armadylsAssault + 1 end end if warpriestTableRNG == 1 then local warpriestRNG = math.random(1, 6) if warpriestRNG == 1 then warpriestOfArmadylHelm = warpriestOfArmadylHelm + 1 elseif warpriestRNG == 2 then warpriestOfArmadylCuirass = warpriestOfArmadylCuirass + 1 elseif warpriestRNG == 3 then warpriestOfArmadylGreaves = warpriestOfArmadylGreaves + 1 elseif warpriestRNG == 4 then warpriestOfArmadylGauntlets = warpriestOfArmadylGauntlets + 1 elseif warpriestRNG == 5 then warpriestOfArmadylBoots = warpriestOfArmadylBoots + 1 elseif warpriestRNG == 6 then warpriestOfArmadylCape = warpriestOfArmadylCape + 1 end end giantFeather = giantFeather + petRNG(petHMDropRate, petThreshold, currentKillCount) for i=1, argsBodyguards do       local mainTableRNG = math.random(1, 128) local warpriestTableRNG = math.random(1, 128) if mainTableRNG == 1 then local uniqueTableRNG = math.random(1, 384) if uniqueTableRNG == 1 then armadylBuckler = armadylBuckler + 1 armadylsAssault = armadylsAssault + 1 elseif uniqueTableRNG == 2 then armadylHelmet = armadylHelmet + 1 armadylsAssault = armadylsAssault + 1 elseif uniqueTableRNG == 3 then armadylChestplate = armadylChestplate + 1 armadylsAssault = armadylsAssault + 1 elseif uniqueTableRNG == 4 then armadylChainskirt = armadylChainskirt + 1 armadylsAssault = armadylsAssault + 1 elseif uniqueTableRNG == 5 then armadylGloves = armadylGloves + 1 armadylsAssault = armadylsAssault + 1 elseif uniqueTableRNG == 6 then armadylBoots = armadylBoots + 1 armadylsAssault = armadylsAssault + 1 end elseif mainTableRNG == 2 then if math.random(1, 4) == 1 then local godswordShardRNG = math.random(1, 3) if godswordShardRNG == 1 then godswordShard1 = godswordShard1 + 1 elseif godswordShardRNG == 2 then godswordShard2 = godswordShard2 + 1 elseif godswordShardRNG == 3 then godswordShard3 = godswordShard3 + 1 end end end if warpriestTableRNG == 1 then local warpriestRNG = math.random(1, 6) if warpriestRNG == 1 then warpriestOfArmadylHelm = warpriestOfArmadylHelm + 1 elseif warpriestRNG == 2 then warpriestOfArmadylCuirass = warpriestOfArmadylCuirass + 1 elseif warpriestRNG == 3 then warpriestOfArmadylGreaves = warpriestOfArmadylGreaves + 1 elseif warpriestRNG == 4 then warpriestOfArmadylGauntlets = warpriestOfArmadylGauntlets + 1 elseif warpriestRNG == 5 then warpriestOfArmadylBoots = warpriestOfArmadylBoots + 1 elseif warpriestRNG == 6 then warpriestOfArmadylCape = warpriestOfArmadylCape + 1 end end end if armadylBuckler >= 1 and armadylHelmet >= 1 and armadylChestplate >= 1 and armadylChainskirt >= 1 and armadylGloves >= 1 and armadylBoots >= 1 and godswordShard1 >= 1 and godswordShard2 >= 1 and godswordShard3 >= 1 and armadylHilt >= 1 and armadylsAssault >= 1 and warpriestOfArmadylHelm >= 1 and warpriestOfArmadylCuirass >= 1 and warpriestOfArmadylGreaves >= 1 and warpriestOfArmadylGauntlets >= 1 and warpriestOfArmadylBoots >= 1 and warpriestOfArmadylCape >= 1 and giantFeather >= 1 then bossLogCompletionCount = bossLogCompletionCount + 1 endKillCount = i       local totalKills = endKillCount - startKillCount if totalKills > mostKills then mostKills = totalKills end if totalKills < leastKills then leastKills = totalKills end currentKillCount = killCount startKillCount = i       armadylBuckler = argsArmadylBuckler armadylHelmet = argsArmadylHelmet armadylChestplate = argsArmadylChestplate armadylChainskirt = argsArmadylChainskirt armadylGloves = argsArmadylGloves armadylBoots = argsArmadylBoots godswordShard1 = argsGodswordShard1 godswordShard2 = argsGodswordShard2 godswordShard3 = argsGodswordShard3 armadylHilt = argsArmadylHilt armadylsAssault = argsArmadylsAssault warpriestOfArmadylHelm = argsWarpriestOfArmadylHelm warpriestOfArmadylCuirass = argsWarpriestOfArmadylCuirass warpriestOfArmadylGreaves = argsWarpriestOfArmadylGreaves warpriestOfArmadylGauntlets = argsWarpriestOfArmadylGauntlets warpriestOfArmadylBoots = argsWarpriestOfArmadylBoots warpriestOfArmadylCape = argsWarpriestOfArmadylCape giantFeather = argsGiantFeather end end else for i=1,kills do     local mainTableRNG = math.random(1, 128) local warpriestTableRNG = math.random(1, 128) if mainTableRNG >= 1 and mainTableRNG <= 2 then local uniqueTableRNG = math.random(1, 6) if uniqueTableRNG == 1 then armadylBuckler = armadylBuckler + 1 armadylsAssault = armadylsAssault + 1 elseif uniqueTableRNG == 2 then armadylHelmet = armadylHelmet + 1 armadylsAssault = armadylsAssault + 1 elseif uniqueTableRNG == 3 then armadylChestplate = armadylChestplate + 1 armadylsAssault = armadylsAssault + 1 elseif uniqueTableRNG == 4 then armadylChainskirt = armadylChainskirt + 1 armadylsAssault = armadylsAssault + 1 elseif uniqueTableRNG == 5 then armadylGloves = armadylGloves + 1 armadylsAssault = armadylsAssault + 1 elseif uniqueTableRNG == 6 then armadylBoots = armadylBoots + 1 armadylsAssault = armadylsAssault + 1 end elseif mainTableRNG == 3 then if math.random(1, 2) == 1 then local godswordShardRNG = math.random(1, 3) if godswordShardRNG == 1 then godswordShard1 = godswordShard1 + 1 elseif godswordShardRNG == 2 then godswordShard2 = godswordShard2 + 1 elseif godswordShardRNG == 3 then godswordShard3 = godswordShard3 + 1 end end elseif mainTableRNG == 4 then if math.random(1, 4) == 1 then armadylHilt = armadylHilt + 1 armadylsAssault = armadylsAssault + 1 end end if warpriestTableRNG == 1 then local warpriestRNG = math.random(1, 6) if warpriestRNG == 1 then warpriestOfArmadylHelm = warpriestOfArmadylHelm + 1 elseif warpriestRNG == 2 then warpriestOfArmadylCuirass = warpriestOfArmadylCuirass + 1 elseif warpriestRNG == 3 then warpriestOfArmadylGreaves = warpriestOfArmadylGreaves + 1 elseif warpriestRNG == 4 then warpriestOfArmadylGauntlets = warpriestOfArmadylGauntlets + 1 elseif warpriestRNG == 5 then warpriestOfArmadylBoots = warpriestOfArmadylBoots + 1 elseif warpriestRNG == 6 then warpriestOfArmadylCape = warpriestOfArmadylCape + 1 end end giantFeather = giantFeather + petRNG(petDropRate, petThreshold, currentKillCount) for i=1, argsBodyguards do       local mainTableRNG = math.random(1, 128) local warpriestTableRNG = math.random(1, 128) if mainTableRNG == 1 then local uniqueTableRNG = math.random(1, 384) if uniqueTableRNG == 1 then armadylBuckler = armadylBuckler + 1 armadylsAssault = armadylsAssault + 1 elseif uniqueTableRNG == 2 then armadylHelmet = armadylHelmet + 1 armadylsAssault = armadylsAssault + 1 elseif uniqueTableRNG == 3 then armadylChestplate = armadylChestplate + 1 armadylsAssault = armadylsAssault + 1 elseif uniqueTableRNG == 4 then armadylChainskirt = armadylChainskirt + 1 armadylsAssault = armadylsAssault + 1 elseif uniqueTableRNG == 5 then armadylGloves = armadylGloves + 1 armadylsAssault = armadylsAssault + 1 elseif uniqueTableRNG == 6 then armadylBoots = armadylBoots + 1 armadylsAssault = armadylsAssault + 1 end elseif mainTableRNG == 2 then if math.random(1, 4) == 1 then local godswordShardRNG = math.random(1, 3) if godswordShardRNG == 1 then godswordShard1 = godswordShard1 + 1 elseif godswordShardRNG == 2 then godswordShard2 = godswordShard2 + 1 elseif godswordShardRNG == 3 then godswordShard3 = godswordShard3 + 1 end end end if warpriestTableRNG == 1 then local warpriestRNG = math.random(1, 6) if warpriestRNG == 1 then warpriestOfArmadylHelm = warpriestOfArmadylHelm + 1 elseif warpriestRNG == 2 then warpriestOfArmadylCuirass = warpriestOfArmadylCuirass + 1 elseif warpriestRNG == 3 then warpriestOfArmadylGreaves = warpriestOfArmadylGreaves + 1 elseif warpriestRNG == 4 then warpriestOfArmadylGauntlets = warpriestOfArmadylGauntlets + 1 elseif warpriestRNG == 5 then warpriestOfArmadylBoots = warpriestOfArmadylBoots + 1 elseif warpriestRNG == 6 then warpriestOfArmadylCape = warpriestOfArmadylCape + 1 end end end if armadylBuckler >= 1 and armadylHelmet >= 1 and armadylChestplate >= 1 and armadylChainskirt >= 1 and armadylGloves >= 1 and armadylBoots >= 1 and godswordShard1 >= 1 and godswordShard2 >= 1 and godswordShard3 >= 1 and armadylHilt >= 1 and armadylsAssault >= 1 and warpriestOfArmadylHelm >= 1 and warpriestOfArmadylCuirass >= 1 and warpriestOfArmadylGreaves >= 1 and warpriestOfArmadylGauntlets >= 1 and warpriestOfArmadylBoots >= 1 and warpriestOfArmadylCape >= 1 and giantFeather >= 1 then bossLogCompletionCount = bossLogCompletionCount + 1 endKillCount = i       local totalKills = endKillCount - startKillCount if totalKills > mostKills then mostKills = totalKills end if totalKills < leastKills then leastKills = totalKills end currentKillCount = killCount startKillCount = i       armadylBuckler = argsArmadylBuckler armadylHelmet = argsArmadylHelmet armadylChestplate = argsArmadylChestplate armadylChainskirt = argsArmadylChainskirt armadylGloves = argsArmadylGloves armadylBoots = argsArmadylBoots godswordShard1 = argsGodswordShard1 godswordShard2 = argsGodswordShard2 godswordShard3 = argsGodswordShard3 armadylHilt = argsArmadylHilt armadylsAssault = argsArmadylsAssault warpriestOfArmadylHelm = argsWarpriestOfArmadylHelm warpriestOfArmadylCuirass = argsWarpriestOfArmadylCuirass warpriestOfArmadylGreaves = argsWarpriestOfArmadylGreaves warpriestOfArmadylGauntlets = argsWarpriestOfArmadylGauntlets warpriestOfArmadylBoots = argsWarpriestOfArmadylBoots warpriestOfArmadylCape = argsWarpriestOfArmadylCape giantFeather = argsGiantFeather end end end local averageKills = kills / bossLogCompletionCount return results(kills, averageKills, leastKills, mostKills) end

function KRilTsutsaroth(args) local kills = 1000000 local killCount = tonumber(args.killCount) local currentKillCount = killCount local startKillCount = 0 local endKillCount = 0 local leastKills = kills local mostKills = 0 local bossLogCompletionCount = 0 local zamorakianSpearDropRate = 128--Zamorakian spear 2/128 then 1/8 local steamBattlestaffDropRate = 128--Steam battlestaff 2/128 then 1/8 local wardOfSubjugationDropRate = 128--Ward of subjugation 2/128 then 1/8 local hoodOfSubjugationDropRate = 128--Hood of subjugation 2/128 then 1/8 local garbOfSubjugationDropRate = 128--Garb of subjugation 2/128 then 1/8 local gownOfSubjugationDropRate = 128--Gown of subjugation 2/128 then 1/8 local glovesOfSubjugationDropRate = 128--Gloves of subjugation 2/128 then 1/8 local bootsOfSubjugationDropRate = 128--Boots of subjugation 2/128 then 1/8 local godswordShard1DropRate = 128--Godsword shard 1 1/128 then 1/2 then 1/3 local godswordShard2DropRate = 128--Godsword shard 2 1/128 then 1/2 then 1/3 local godswordShard3DropRate = 128--Godsword shard 3 1/128 then 1/2 then 1/3 local zamorakHiltDropRate = 128--Zamorak hilt 1/128 then 1/4 local razuleisTaleDropRate = 128--Razulei's Tale local warpriestOfZamorakHelmDropRate = 128--Warpriest of Zamorak helm local warpriestOfZamorakCuirassDropRate = 128--Warpriest of Zamorak cuirass local warpriestOfZamorakGreavesDropRate = 128--Warpriest of Zamorak greaves local warpriestOfZamorakGauntletsDropRate = 128--Warpriest of Zamorak gauntlets local warpriestOfZamorakBootsDropRate = 128--Warpriest of Zamorak boots local warpriestOfZamorakCapeDropRate = 128--Warpriest of Zamorak cape local petDropRate = 5000--Severed hoof local petHMDropRate = 1000--Severed hoof HM local petThreshold = 1000 local argsHardMode = tonumber(args.hardModeKRilTsutsaroth) local argsBodyguards = tonumber(args.tstanonKarlak) + tonumber(args.zaklNGritch) + tonumber(args.balfrugKreeyath) local argsZamorakianSpear = tonumber(args.zamorakianSpear) local argsSteamBattlestaff = tonumber(args.steamBattlestaff) local argsWardOfSubjugation = tonumber(args.wardOfSubjugation) local argsHoodOfSubjugation = tonumber(args.hoodOfSubjugation) local argsGarbOfSubjugation = tonumber(args.garbOfSubjugation) local argsGownOfSubjugation = tonumber(args.gownOfSubjugation) local argsGlovesOfSubjugation = tonumber(args.glovesOfSubjugation) local argsBootsOfSubjugation = tonumber(args.bootsOfSubjugation) local argsGodswordShard1 = tonumber(args.godswordShard1KRilTsutsaroth) local argsGodswordShard2 = tonumber(args.godswordShard2KRilTsutsaroth) local argsGodswordShard3 = tonumber(args.godswordShard3KRilTsutsaroth) local argsZamorakHilt = tonumber(args.zamorakHilt) local argsRazuleisTale = tonumber(args.razuleisTale) local argsWarpriestOfZamorakHelm = tonumber(args.warpriestOfZamorakHelm) local argsWarpriestOfZamorakCuirass = tonumber(args.warpriestOfZamorakCuirass) local argsWarpriestOfZamorakGreaves = tonumber(args.warpriestOfZamorakGreaves) local argsWarpriestOfZamorakGauntlets = tonumber(args.warpriestOfZamorakGauntlets) local argsWarpriestOfZamorakBoots = tonumber(args.warpriestOfZamorakBoots) local argsWarpriestOfZamorakCape = tonumber(args.warpriestOfZamorakCape) local argsSeveredHoof = tonumber(args.severedHoof) local zamorakianSpear = argsZamorakianSpear local steamBattlestaff = argsSteamBattlestaff local wardOfSubjugation = argsWardOfSubjugation local hoodOfSubjugation = argsHoodOfSubjugation local garbOfSubjugation = argsGarbOfSubjugation local gownOfSubjugation = argsGownOfSubjugation local glovesOfSubjugation = argsGlovesOfSubjugation local bootsOfSubjugation = argsBootsOfSubjugation local godswordShard1 = argsGodswordShard1 local godswordShard2 = argsGodswordShard2 local godswordShard3 = argsGodswordShard3 local zamorakHilt = argsZamorakHilt local razuleisTale = argsRazuleisTale local warpriestOfZamorakHelm = argsWarpriestOfZamorakHelm local warpriestOfZamorakCuirass = argsWarpriestOfZamorakCuirass local warpriestOfZamorakGreaves = argsWarpriestOfZamorakGreaves local warpriestOfZamorakGauntlets = argsWarpriestOfZamorakGauntlets local warpriestOfZamorakBoots = argsWarpriestOfZamorakBoots local warpriestOfZamorakCape = argsWarpriestOfZamorakCape local severedHoof = argsSeveredHoof math.randomseed(os.time) if argsHardMode == 1 then for i=1,kills do     local mainTableRNG = math.random(1, 128) local warpriestTableRNG = math.random(1, 128) if mainTableRNG >= 1 and mainTableRNG <= 2 then local uniqueTableRNG = math.random(1, 8) if uniqueTableRNG == 1 then zamorakianSpear = zamorakianSpear + 1 razuleisTale = razuleisTale + 1 elseif uniqueTableRNG == 2 then steamBattlestaff = steamBattlestaff + 1 razuleisTale = razuleisTale + 1 elseif uniqueTableRNG == 3 then wardOfSubjugation = wardOfSubjugation + 1 razuleisTale = razuleisTale + 1 elseif uniqueTableRNG == 4 then hoodOfSubjugation = hoodOfSubjugation + 1 razuleisTale = razuleisTale + 1 elseif uniqueTableRNG == 5 then garbOfSubjugation = garbOfSubjugation + 1 razuleisTale = razuleisTale + 1 elseif uniqueTableRNG == 6 then gownOfSubjugation = gownOfSubjugation + 1 razuleisTale = razuleisTale + 1 elseif uniqueTableRNG == 7 then glovesOfSubjugation = glovesOfSubjugation + 1 razuleisTale = razuleisTale + 1 elseif uniqueTableRNG == 8 then bootsOfSubjugation = bootsOfSubjugation + 1 razuleisTale = razuleisTale + 1 end elseif mainTableRNG == 3 then if math.random(1, 2) == 1 then local godswordShardRNG = math.random(1, 3) if godswordShardRNG == 1 then godswordShard1 = godswordShard1 + 1 elseif godswordShardRNG == 2 then godswordShard2 = godswordShard2 + 1 elseif godswordShardRNG == 3 then godswordShard3 = godswordShard3 + 1 end end elseif mainTableRNG == 4 then if math.random(1, 4) == 1 then zamorakHilt = zamorakHilt + 1 razuleisTale = razuleisTale + 1 end end if warpriestTableRNG == 1 then local warpriestRNG = math.random(1, 6) if warpriestRNG == 1 then warpriestOfZamorakHelm = warpriestOfZamorakHelm + 1 elseif warpriestRNG == 2 then warpriestOfZamorakCuirass = warpriestOfZamorakCuirass + 1 elseif warpriestRNG == 3 then warpriestOfZamorakGreaves = warpriestOfZamorakGreaves + 1 elseif warpriestRNG == 4 then warpriestOfZamorakGauntlets = warpriestOfZamorakGauntlets + 1 elseif warpriestRNG == 5 then warpriestOfZamorakBoots = warpriestOfZamorakBoots + 1 elseif warpriestRNG == 6 then warpriestOfZamorakCape = warpriestOfZamorakCape + 1 end end severedHoof = severedHoof + petRNG(petHMDropRate, petThreshold, currentKillCount) for i=1, argsBodyguards do       local mainTableRNG = math.random(1, 128) local warpriestTableRNG = math.random(1, 128) if mainTableRNG == 1 then local uniqueTableRNG = math.random(1, 512) if uniqueTableRNG == 1 then zamorakianSpear = zamorakianSpear + 1 razuleisTale = razuleisTale + 1 elseif uniqueTableRNG == 2 then steamBattlestaff = steamBattlestaff + 1 razuleisTale = razuleisTale + 1 elseif uniqueTableRNG == 3 then wardOfSubjugation = wardOfSubjugation + 1 razuleisTale = razuleisTale + 1 elseif uniqueTableRNG == 4 then hoodOfSubjugation = hoodOfSubjugation + 1 razuleisTale = razuleisTale + 1 elseif uniqueTableRNG == 5 then garbOfSubjugation = garbOfSubjugation + 1 razuleisTale = razuleisTale + 1 elseif uniqueTableRNG == 6 then gownOfSubjugation = gownOfSubjugation + 1 razuleisTale = razuleisTale + 1 elseif uniqueTableRNG == 7 then glovesOfSubjugation = glovesOfSubjugation + 1 razuleisTale = razuleisTale + 1 elseif uniqueTableRNG == 8 then bootsOfSubjugation = bootsOfSubjugation + 1 razuleisTale = razuleisTale + 1 end elseif mainTableRNG == 2 then if math.random(1, 4) == 1 then local godswordShardRNG = math.random(1, 3) if godswordShardRNG == 1 then godswordShard1 = godswordShard1 + 1 elseif godswordShardRNG == 2 then godswordShard2 = godswordShard2 + 1 elseif godswordShardRNG == 3 then godswordShard3 = godswordShard3 + 1 end end end if warpriestTableRNG == 1 then local warpriestRNG = math.random(1, 6) if warpriestRNG == 1 then warpriestOfZamorakHelm = warpriestOfZamorakHelm + 1 elseif warpriestRNG == 2 then warpriestOfZamorakCuirass = warpriestOfZamorakCuirass + 1 elseif warpriestRNG == 3 then warpriestOfZamorakGreaves = warpriestOfZamorakGreaves + 1 elseif warpriestRNG == 4 then warpriestOfZamorakGauntlets = warpriestOfZamorakGauntlets + 1 elseif warpriestRNG == 5 then warpriestOfZamorakBoots = warpriestOfZamorakBoots + 1 elseif warpriestRNG == 6 then warpriestOfZamorakCape = warpriestOfZamorakCape + 1 end end end if zamorakianSpear >= 1 and steamBattlestaff >= 1 and wardOfSubjugation >= 1 and hoodOfSubjugation >= 1 and garbOfSubjugation >= 1 and gownOfSubjugation >= 1 and glovesOfSubjugation >= 1 and bootsOfSubjugation >= 1 and godswordShard1 >= 1 and godswordShard2 >= 1 and godswordShard3 >= 1 and zamorakHilt >= 1 and razuleisTale >= 1 and warpriestOfZamorakHelm >= 1 and warpriestOfZamorakCuirass >= 1 and warpriestOfZamorakGreaves >= 1 and warpriestOfZamorakGauntlets >= 1 and warpriestOfZamorakBoots >= 1 and warpriestOfZamorakCape >= 1 and severedHoof >= 1 then bossLogCompletionCount = bossLogCompletionCount + 1 endKillCount = i       local totalKills = endKillCount - startKillCount if totalKills > mostKills then mostKills = totalKills end if totalKills < leastKills then leastKills = totalKills end currentKillCount = killCount startKillCount = i       zamorakianSpear = argsZamorakianSpear steamBattlestaff = argsSteamBattlestaff wardOfSubjugation = argsWardOfSubjugation hoodOfSubjugation = argsHoodOfSubjugation garbOfSubjugation = argsGarbOfSubjugation gownOfSubjugation = argsGownOfSubjugation glovesOfSubjugation = argsGlovesOfSubjugation bootsOfSubjugation = argsBootsOfSubjugation godswordShard1 = argsGodswordShard1 godswordShard2 = argsGodswordShard2 godswordShard3 = argsGodswordShard3 zamorakHilt = argsZamorakHilt razuleisTale = argsRazuleisTale warpriestOfZamorakHelm = argsWarpriestOfZamorakHelm warpriestOfZamorakCuirass = argsWarpriestOfZamorakCuirass warpriestOfZamorakGreaves = argsWarpriestOfZamorakGreaves warpriestOfZamorakGauntlets = argsWarpriestOfZamorakGauntlets warpriestOfZamorakBoots = argsWarpriestOfZamorakBoots warpriestOfZamorakCape = argsWarpriestOfZamorakCape severedHoof = argsSeveredHoof end end else for i=1,kills do     local mainTableRNG = math.random(1, 128) local warpriestTableRNG = math.random(1, 128) if mainTableRNG >= 1 and mainTableRNG <= 2 then local uniqueTableRNG = math.random(1, 8) if uniqueTableRNG == 1 then zamorakianSpear = zamorakianSpear + 1 razuleisTale = razuleisTale + 1 elseif uniqueTableRNG == 2 then steamBattlestaff = steamBattlestaff + 1 razuleisTale = razuleisTale + 1 elseif uniqueTableRNG == 3 then wardOfSubjugation = wardOfSubjugation + 1 razuleisTale = razuleisTale + 1 elseif uniqueTableRNG == 4 then hoodOfSubjugation = hoodOfSubjugation + 1 razuleisTale = razuleisTale + 1 elseif uniqueTableRNG == 5 then garbOfSubjugation = garbOfSubjugation + 1 razuleisTale = razuleisTale + 1 elseif uniqueTableRNG == 6 then gownOfSubjugation = gownOfSubjugation + 1 razuleisTale = razuleisTale + 1 elseif uniqueTableRNG == 7 then glovesOfSubjugation = glovesOfSubjugation + 1 razuleisTale = razuleisTale + 1 elseif uniqueTableRNG == 8 then bootsOfSubjugation = bootsOfSubjugation + 1 razuleisTale = razuleisTale + 1 end elseif mainTableRNG == 3 then if math.random(1, 2) == 1 then local godswordShardRNG = math.random(1, 3) if godswordShardRNG == 1 then godswordShard1 = godswordShard1 + 1 elseif godswordShardRNG == 2 then godswordShard2 = godswordShard2 + 1 elseif godswordShardRNG == 3 then godswordShard3 = godswordShard3 + 1 end end elseif mainTableRNG == 4 then if math.random(1, 4) == 1 then zamorakHilt = zamorakHilt + 1 razuleisTale = razuleisTale + 1 end end if warpriestTableRNG == 1 then local warpriestRNG = math.random(1, 6) if warpriestRNG == 1 then warpriestOfZamorakHelm = warpriestOfZamorakHelm + 1 elseif warpriestRNG == 2 then warpriestOfZamorakCuirass = warpriestOfZamorakCuirass + 1 elseif warpriestRNG == 3 then warpriestOfZamorakGreaves = warpriestOfZamorakGreaves + 1 elseif warpriestRNG == 4 then warpriestOfZamorakGauntlets = warpriestOfZamorakGauntlets + 1 elseif warpriestRNG == 5 then warpriestOfZamorakBoots = warpriestOfZamorakBoots + 1 elseif warpriestRNG == 6 then warpriestOfZamorakCape = warpriestOfZamorakCape + 1 end end severedHoof = severedHoof + petRNG(petDropRate, petThreshold, currentKillCount) for i=1, argsBodyguards do       local mainTableRNG = math.random(1, 128) local warpriestTableRNG = math.random(1, 128) if mainTableRNG == 1 then local uniqueTableRNG = math.random(1, 512) if uniqueTableRNG == 1 then zamorakianSpear = zamorakianSpear + 1 razuleisTale = razuleisTale + 1 elseif uniqueTableRNG == 2 then steamBattlestaff = steamBattlestaff + 1 razuleisTale = razuleisTale + 1 elseif uniqueTableRNG == 3 then wardOfSubjugation = wardOfSubjugation + 1 razuleisTale = razuleisTale + 1 elseif uniqueTableRNG == 4 then hoodOfSubjugation = hoodOfSubjugation + 1 razuleisTale = razuleisTale + 1 elseif uniqueTableRNG == 5 then garbOfSubjugation = garbOfSubjugation + 1 razuleisTale = razuleisTale + 1 elseif uniqueTableRNG == 6 then gownOfSubjugation = gownOfSubjugation + 1 razuleisTale = razuleisTale + 1 elseif uniqueTableRNG == 7 then glovesOfSubjugation = glovesOfSubjugation + 1 razuleisTale = razuleisTale + 1 elseif uniqueTableRNG == 8 then bootsOfSubjugation = bootsOfSubjugation + 1 razuleisTale = razuleisTale + 1 end elseif mainTableRNG == 2 then if math.random(1, 4) == 1 then local godswordShardRNG = math.random(1, 3) if godswordShardRNG == 1 then godswordShard1 = godswordShard1 + 1 elseif godswordShardRNG == 2 then godswordShard2 = godswordShard2 + 1 elseif godswordShardRNG == 3 then godswordShard3 = godswordShard3 + 1 end end end if warpriestTableRNG == 1 then local warpriestRNG = math.random(1, 6) if warpriestRNG == 1 then warpriestOfZamorakHelm = warpriestOfZamorakHelm + 1 elseif warpriestRNG == 2 then warpriestOfZamorakCuirass = warpriestOfZamorakCuirass + 1 elseif warpriestRNG == 3 then warpriestOfZamorakGreaves = warpriestOfZamorakGreaves + 1 elseif warpriestRNG == 4 then warpriestOfZamorakGauntlets = warpriestOfZamorakGauntlets + 1 elseif warpriestRNG == 5 then warpriestOfZamorakBoots = warpriestOfZamorakBoots + 1 elseif warpriestRNG == 6 then warpriestOfZamorakCape = warpriestOfZamorakCape + 1 end end end if zamorakianSpear >= 1 and steamBattlestaff >= 1 and wardOfSubjugation >= 1 and hoodOfSubjugation >= 1 and garbOfSubjugation >= 1 and gownOfSubjugation >= 1 and glovesOfSubjugation >= 1 and bootsOfSubjugation >= 1 and godswordShard1 >= 1 and godswordShard2 >= 1 and godswordShard3 >= 1 and zamorakHilt >= 1 and razuleisTale >= 1 and warpriestOfZamorakHelm >= 1 and warpriestOfZamorakCuirass >= 1 and warpriestOfZamorakGreaves >= 1 and warpriestOfZamorakGauntlets >= 1 and warpriestOfZamorakBoots >= 1 and warpriestOfZamorakCape >= 1 and severedHoof >= 1 then bossLogCompletionCount = bossLogCompletionCount + 1 endKillCount = i       local totalKills = endKillCount - startKillCount if totalKills > mostKills then mostKills = totalKills end if totalKills < leastKills then leastKills = totalKills end currentKillCount = killCount startKillCount = i       zamorakianSpear = argsZamorakianSpear steamBattlestaff = argsSteamBattlestaff wardOfSubjugation = argsWardOfSubjugation hoodOfSubjugation = argsHoodOfSubjugation garbOfSubjugation = argsGarbOfSubjugation gownOfSubjugation = argsGownOfSubjugation glovesOfSubjugation = argsGlovesOfSubjugation bootsOfSubjugation = argsBootsOfSubjugation godswordShard1 = argsGodswordShard1 godswordShard2 = argsGodswordShard2 godswordShard3 = argsGodswordShard3 zamorakHilt = argsZamorakHilt razuleisTale = argsRazuleisTale warpriestOfZamorakHelm = argsWarpriestOfZamorakHelm warpriestOfZamorakCuirass = argsWarpriestOfZamorakCuirass warpriestOfZamorakGreaves = argsWarpriestOfZamorakGreaves warpriestOfZamorakGauntlets = argsWarpriestOfZamorakGauntlets warpriestOfZamorakBoots = argsWarpriestOfZamorakBoots warpriestOfZamorakCape = argsWarpriestOfZamorakCape severedHoof = argsSeveredHoof end end end local averageKills = kills / bossLogCompletionCount return results(kills, averageKills, leastKills, mostKills) end

function Legiones(args) local kills = 1000000 local killCount = tonumber(args.killCount) local currentKillCount = killCount local startKillCount = 0 local endKillCount = 0 local leastKills = kills local mostKills = 0 local bossLogCompletionCount = 0 local ascensionSignetIDropRate = 50--Ascension signet I local ascensionSignetIIDropRate = 50--Ascension signet II  local ascensionSignetIIIDropRate = 50--Ascension signet III local ascensionSignetIVDropRate = 50--Ascension signet IV local ascensionSignetVDropRate = 50--Ascension signet V  local ascensionSignetVIDropRate = 50--Ascension signet VI  local corruptedAscensionSignetIDropRate = 1000--Corrupted Ascension signet I  local corruptedAscensionSignetIIDropRate = 1000--Corrupted Ascension signet II  local corruptedAscensionSignetIIIDropRate = 1000--Corrupted Ascension signet III local corruptedAscensionSignetIVDropRate = 1000--Corrupted Ascension signet IV local corruptedAscensionSignetVDropRate = 1000--Corrupted Ascension signet V  local corruptedAscensionSignetVIDropRate = 1000--Corrupted Ascension signet VI  local petThreshold = 1200 local argsAscensionSignetI = tonumber(args.ascensionSignetI) local argsAscensionSignetII = tonumber(args.ascensionSignetII) local argsAscensionSignetIII = tonumber(args.ascensionSignetIII) local argsAscensionSignetIV = tonumber(args.ascensionSignetIV) local argsAscensionSignetV = tonumber(args.ascensionSignetV) local argsAscensionSignetVI = tonumber(args.ascensionSignetVI) local argsCorruptedAscensionSignetI = tonumber(args.corruptedAscensionSignetI) local argsCorruptedAscensionSignetII = tonumber(args.corruptedAscensionSignetII) local argsCorruptedAscensionSignetIII = tonumber(args.corruptedAscensionSignetIII) local argsCorruptedAscensionSignetIV = tonumber(args.corruptedAscensionSignetIV) local argsCorruptedAscensionSignetV = tonumber(args.corruptedAscensionSignetV) local argsCorruptedAscensionSignetVI = tonumber(args.corruptedAscensionSignetVI) local ascensionSignetI = argsAscensionSignetI local ascensionSignetII = argsAscensionSignetII local ascensionSignetIII = argsAscensionSignetIII local ascensionSignetIV = argsAscensionSignetIV local ascensionSignetV = argsAscensionSignetV local ascensionSignetVI = argsAscensionSignetVI local corruptedAscensionSignetI = argsCorruptedAscensionSignetI local corruptedAscensionSignetII = argsCorruptedAscensionSignetII local corruptedAscensionSignetIII = argsCorruptedAscensionSignetIII local corruptedAscensionSignetIV = argsCorruptedAscensionSignetIV local corruptedAscensionSignetV = argsCorruptedAscensionSignetV local corruptedAscensionSignetVI = argsCorruptedAscensionSignetVI math.randomseed(os.time) for i=1,kills do   if ascensionSignetI == 0 or corruptedAscensionSignetI == 0 then local ascensionSignetIRNG = math.random(1, ascensionSignetIDropRate) if ascensionSignetIRNG == 1 then ascensionSignetI = ascensionSignetI + 1 end corruptedAscensionSignetI = corruptedAscensionSignetI + petRNG(corruptedAscensionSignetIDropRate, petThreshold, currentKillCount) elseif ascensionSignetII == 0 or corruptedAscensionSignetII == 0 then local ascensionSignetIIRNG = math.random(1, ascensionSignetIIDropRate) if ascensionSignetIIRNG == 1 then ascensionSignetII = ascensionSignetII + 1 end corruptedAscensionSignetII = corruptedAscensionSignetII + petRNG(corruptedAscensionSignetIIDropRate, petThreshold, currentKillCount) elseif ascensionSignetIII == 0 or corruptedAscensionSignetIII == 0 then local ascensionSignetIIIRNG = math.random(1, ascensionSignetIIIDropRate) if ascensionSignetIIIRNG == 1 then ascensionSignetIII = ascensionSignetIII + 1 end corruptedAscensionSignetIII = corruptedAscensionSignetIII + petRNG(corruptedAscensionSignetIIIDropRate, petThreshold, currentKillCount) elseif ascensionSignetIV == 0 or corruptedAscensionSignetIV == 0 then local ascensionSignetIVRNG = math.random(1, ascensionSignetIVDropRate) if ascensionSignetIVRNG == 1 then ascensionSignetIV = ascensionSignetIV + 1 end corruptedAscensionSignetIV = corruptedAscensionSignetIV + petRNG(corruptedAscensionSignetIVDropRate, petThreshold, currentKillCount) elseif ascensionSignetV == 0 or corruptedAscensionSignetV == 0 then local ascensionSignetVRNG = math.random(1, ascensionSignetVDropRate) if ascensionSignetVRNG == 1 then ascensionSignetV = ascensionSignetV + 1 end corruptedAscensionSignetV = corruptedAscensionSignetV + petRNG(corruptedAscensionSignetVDropRate, petThreshold, currentKillCount) elseif ascensionSignetVI == 0 or corruptedAscensionSignetVI == 0 then local ascensionSignetVIRNG = math.random(1, ascensionSignetVIDropRate) if ascensionSignetVIRNG == 1 then ascensionSignetVI = ascensionSignetVI + 1 end corruptedAscensionSignetVI = corruptedAscensionSignetVI + petRNG(corruptedAscensionSignetVIDropRate, petThreshold, currentKillCount) end currentKillCount = currentKillCount + 1 if ascensionSignetI >= 1 and ascensionSignetII >= 1 and ascensionSignetIII >= 1 and ascensionSignetIV >= 1 and ascensionSignetV >= 1 and ascensionSignetVI >= 1 and corruptedAscensionSignetI >= 1 and corruptedAscensionSignetII >= 1 and corruptedAscensionSignetIII >= 1 and corruptedAscensionSignetIV >= 1 and corruptedAscensionSignetV >= 1 and corruptedAscensionSignetVI >= 1 then bossLogCompletionCount = bossLogCompletionCount + 1 endKillCount = i     local totalKills = endKillCount - startKillCount if totalKills > mostKills then mostKills = totalKills end if totalKills < leastKills then leastKills = totalKills end currentKillCount = killCount startKillCount = i     ascensionSignetI = argsAscensionSignetI ascensionSignetII = argsAscensionSignetII ascensionSignetIII = argsAscensionSignetIII ascensionSignetIV = argsAscensionSignetIV ascensionSignetV = argsAscensionSignetV ascensionSignetVI = argsAscensionSignetVI corruptedAscensionSignetI = argsCorruptedAscensionSignetI corruptedAscensionSignetII = argsCorruptedAscensionSignetII corruptedAscensionSignetIII = argsCorruptedAscensionSignetIII corruptedAscensionSignetIV = argsCorruptedAscensionSignetIV corruptedAscensionSignetV = argsCorruptedAscensionSignetV corruptedAscensionSignetVI = argsCorruptedAscensionSignetVI end end local averageKills = kills / bossLogCompletionCount return results(kills, averageKills, leastKills, mostKills) end

function Nex(args) local kills = 1000000 local killCount = tonumber(args.killCount) local currentKillCount = killCount local startKillCount = 0 local endKillCount = 0 local leastKills = kills local mostKills = 0 local bossLogCompletionCount = 0 local torvaFullHelmDropRate = 128--Torva full helm 1/128 then 1/3 local torvaPlatebodyDropRate = 128--Torva platebody 1/128 then 1/3 local torvaPlatelegsDropRate = 128--Torva platelegs 1/128 then 1/3 local torvaGlovesDropRate = 128--Torva gloves 1/128 then 1/3 local torvaBootsDropRate = 128--Torva boots 1/128 then 1/3 local zaryteBowDropRate = 128--Zaryte bow 1/128 then 1/3 local pernixCowlDropRate = 128--Pernix cowl 1/128 then 1/3 local pernixBodyDropRate = 128--Pernix body 1/128 then 1/3 local pernixChapsDropRate = 128--Pernix chaps 1/128 then 1/3 local pernixGlovesDropRate = 128--Pernix gloves 1/128 then 1/3 local pernixBootsDropRate = 128--Pernix boots 1/128 then 1/3 local virtusWandDropRate = 128--Virtus wand 1/128 then 1/3 local virtusBookDropRate = 128--Virtus book 1/128 then 1/3 local virtusMaskDropRate = 128--Virtus mask 1/128 then 1/3 local virtusRobeTopDropRate = 128--Virtus robe top 1/128 then 1/3 local virtusRobeLegsDropRate = 128--Virtus robe legs 1/128 then 1/3 local virtusGlovesDropRate = 128--Virtus gloves 1/128 then 1/3 local virtusBootsDropRate = 128--Virtus boots 1/128 then 1/3 local ancientEmblemDropRate = 50--Ancient emblem local nexsFollowersDropRate = 128--Nex's Followers local petDropRate = 2000--Blood-soaked feather local petThreshold = 400 local argsTorvaFullHelm = tonumber(args.torvaFullHelm) local argsTorvaPlatebody = tonumber(args.torvaPlatebody) local argsTorvaPlatelegs = tonumber(args.torvaPlatelegs) local argsTorvaGloves = tonumber(args.torvaGloves) local argsTorvaBoots = tonumber(args.torvaBoots) local argsZaryteBow = tonumber(args.zaryteBow) local argsPernixCowl = tonumber(args.pernixCowl) local argsPernixBody = tonumber(args.pernixBody) local argsPernixChaps = tonumber(args.pernixChaps) local argsPernixGloves = tonumber(args.pernixGloves) local argsPernixBoots = tonumber(args.pernixBoots) local argsVirtusWand = tonumber(args.virtusWand) local argsVirtusBook = tonumber(args.virtusBook) local argsVirtusMask = tonumber(args.virtusMask) local argsVirtusRobeTop = tonumber(args.virtusRobeTop) local argsVirtusRobeLegs = tonumber(args.virtusRobeLegs) local argsVirtusGloves = tonumber(args.virtusGloves) local argsVirtusBoots = tonumber(args.virtusBoots) local argsAncientEmblem = tonumber(args.ancientEmblem) local argsNexsFollowers = tonumber(args.nexsFollowers) local argsBloodSoakedFeather = tonumber(args.bloodSoakedFeather) local torvaFullHelm = argsTorvaFullHelm local torvaPlatebody = argsTorvaPlatebody local torvaPlatelegs = argsTorvaPlatelegs local torvaGloves = argsTorvaGloves local torvaBoots = argsTorvaBoots local zaryteBow = argsZaryteBow local pernixCowl = argsPernixCowl local pernixBody = argsPernixBody local pernixChaps = argsPernixChaps local pernixGloves = argsPernixGloves local pernixBoots = argsPernixBoots local virtusWand = argsVirtusWand local virtusBook = argsVirtusBook local virtusMask = argsVirtusMask local virtusRobeTop = argsVirtusRobeTop local virtusRobeLegs = argsVirtusRobeLegs local virtusGloves = argsVirtusGloves local virtusBoots = argsVirtusBoots local ancientEmblem = argsAncientEmblem local nexsFollowers = argsNexsFollowers local bloodSoakedFeather = argsBloodSoakedFeather math.randomseed(os.time) for i=1,kills do   local mainTableRNG = math.random(1, 128) local ancientEmblemRNG = math.random(1, ancientEmblemDropRate) if mainTableRNG == 1 then local torvaFullHelmPlatebodyPlatelegsRNG = math.random(1, 3) if torvaFullHelmPlatebodyPlatelegsRNG == 1 then torvaFullHelm = torvaFullHelm + 1 nexsFollowers = nexsFollowers + 1 elseif torvaFullHelmPlatebodyPlatelegsRNG == 2 then torvaPlatebody = torvaPlatebody + 1 nexsFollowers = nexsFollowers + 1 elseif torvaFullHelmPlatebodyPlatelegsRNG == 3 then torvaPlatelegs = torvaPlatelegs + 1 nexsFollowers = nexsFollowers + 1 end elseif mainTableRNG == 2 then local pernixCowlBodyChapsRNG = math.random(1, 3) if pernixCowlBodyChapsRNG == 1 then pernixCowl = pernixCowl + 1 nexsFollowers = nexsFollowers + 1 elseif pernixCowlBodyChapsRNG == 2 then pernixBody = pernixBody + 1 nexsFollowers = nexsFollowers + 1 elseif pernixCowlBodyChapsRNG == 3 then pernixChaps = pernixChaps + 1 nexsFollowers = nexsFollowers + 1 end elseif mainTableRNG == 3 then local virtusMaskRobeTopRobeLegsRNG = math.random(1, 3) if virtusMaskRobeTopRobeLegsRNG == 1 then virtusMask = virtusMask + 1 nexsFollowers = nexsFollowers + 1 elseif virtusMaskRobeTopRobeLegsRNG == 2 then virtusRobeTop = virtusRobeTop + 1 nexsFollowers = nexsFollowers + 1 elseif virtusMaskRobeTopRobeLegsRNG == 3 then virtusRobeLegs = virtusRobeLegs + 1 nexsFollowers = nexsFollowers + 1 end elseif mainTableRNG == 4 then local zaryteBowVirtusWandBookRNG = math.random(1, 3) if zaryteBowVirtusWandBookRNG == 1 then zaryteBow = zaryteBow + 1 nexsFollowers = nexsFollowers + 1 elseif zaryteBowVirtusWandBookRNG == 2 then virtusWand = virtusWand + 1 nexsFollowers = nexsFollowers + 1 elseif zaryteBowVirtusWandBookRNG == 3 then virtusBook = virtusBook + 1 nexsFollowers = nexsFollowers + 1 end elseif mainTableRNG == 5 then local torvaPernixVirtusGlovesRNG = math.random(1, 3) if torvaPernixVirtusGlovesRNG == 1 then torvaGloves = torvaGloves + 1 nexsFollowers = nexsFollowers + 1 elseif torvaPernixVirtusGlovesRNG == 2 then pernixGloves = pernixGloves + 1 nexsFollowers = nexsFollowers + 1 elseif torvaPernixVirtusGlovesRNG == 3 then virtusGloves = virtusGloves + 1 nexsFollowers = nexsFollowers + 1 end elseif mainTableRNG == 6 then local torvaPernixVirtusBootsRNG = math.random(1, 3) if torvaPernixVirtusBootsRNG == 1 then torvaBoots = torvaBoots + 1 nexsFollowers = nexsFollowers + 1 elseif torvaPernixVirtusBootsRNG == 2 then pernixBoots = pernixBoots + 1 nexsFollowers = nexsFollowers + 1 elseif torvaPernixVirtusBootsRNG == 3 then virtusBoots = virtusBoots + 1 nexsFollowers = nexsFollowers + 1 end end if ancientEmblemRNG == 1 then ancientEmblem = ancientEmblem + 1 end bloodSoakedFeather = bloodSoakedFeather + petRNG(petDropRate, petThreshold, currentKillCount) currentKillCount = currentKillCount + 1 if torvaFullHelm >= 1 and torvaPlatebody >= 1 and torvaPlatelegs >= 1 and torvaGloves >= 1 and torvaBoots >= 1 and zaryteBow >= 1 and pernixCowl >= 1 and pernixBody >= 1 and pernixChaps >= 1 and pernixGloves >= 1 and pernixBoots >= 1 and virtusWand >= 1 and virtusBook >= 1 and virtusMask >= 1 and virtusRobeTop >= 1 and virtusRobeLegs >= 1 and virtusGloves >= 1 and virtusBoots >= 1 and ancientEmblem >= 1 and nexsFollowers >= 1 and bloodSoakedFeather >= 1 then bossLogCompletionCount = bossLogCompletionCount + 1 endKillCount = i     local totalKills = endKillCount - startKillCount if totalKills > mostKills then mostKills = totalKills end if totalKills < leastKills then leastKills = totalKills end currentKillCount = killCount startKillCount = i     torvaFullHelm = argsTorvaFullHelm torvaPlatebody = argsTorvaPlatebody torvaPlatelegs = argsTorvaPlatelegs torvaGloves = argsTorvaGloves torvaBoots = argsTorvaBoots zaryteBow = argsZaryteBow pernixCowl = argsPernixCowl pernixBody = argsPernixBody pernixChaps = argsPernixChaps pernixGloves = argsPernixGloves pernixBoots = argsPernixBoots virtusWand = argsVirtusWand virtusBook = argsVirtusBook virtusMask = argsVirtusMask virtusRobeTop = argsVirtusRobeTop virtusRobeLegs = argsVirtusRobeLegs virtusGloves = argsVirtusGloves virtusBoots = argsVirtusBoots ancientEmblem = argsAncientEmblem nexsFollowers = argsNexsFollowers bloodSoakedFeather = argsBloodSoakedFeather end end local averageKills = kills / bossLogCompletionCount return results(kills, averageKills, leastKills, mostKills) end

function QueenBlackDragon(args) local kills = 1000000 local killCount = tonumber(args.killCount) local currentKillCount = killCount local startKillCount = 0 local endKillCount = 0 local leastKills = kills local mostKills = 0 local bossLogCompletionCount = 0 local royalBoltStabiliserDropRate = 128--Royal bolt stabiliser 5/128 local royalFrameDropRate = 128--Royal frame 5/128 local royalSightDropRate = 128--Royal sight 5/128 local royalTorsionSpringDropRate = 128--Royal torsion spring 5/128 local dragonboneUpgradeKitDropRate = 128--Dragonbone upgrade kit 2/128 local dragonKiteshieldDropRate = 128--Dragon kiteshield 1/128 local draconicVisageDropRate = 109--Draconic visage 1/109 local firstDragonkinJournalDropRate = 1--First dragonkin journal 1/1 local secondDragonkinJournalDropRate = 19--Second dragonkin journal 1/19 local thirdDragonkinJournalDropRate = 19--Third dragonkin journal 1/19 local fourthDragonkinJournalDropRate = 19--Fourth dragonkin journal 1/19 local petDropRate = 2500--Queen black dragon scale local petThreshold = 500 local argsRoyalBoltStabiliser = tonumber(args.royalBoltStabiliser) local argsRoyalFrame = tonumber(args.royalFrame) local argsRoyalSight = tonumber(args.royalSight) local argsRoyalTorsionSpring = tonumber(args.royalTorsionSpring) local argsDragonboneUpgradeKit = tonumber(args.dragonboneUpgradeKit) local argsDragonKiteshield = tonumber(args.dragonKiteshield) local argsDraconicVisage = tonumber(args.draconicVisageQueenBlackDragon) local argsDragonkinJournal = tonumber(args.firstDragonkinJournal) + tonumber(args.secondDragonkinJournal) + tonumber(args.thirdDragonkinJournal) + tonumber(args.fourthDragonkinJournal) local argsQueenBlackDragonScale = tonumber(args.queenBlackDragonScale) local royalBoltStabiliser = argsRoyalBoltStabiliser local royalFrame = argsRoyalFrame local royalSight = argsRoyalSight local royalTorsionSpring = argsRoyalTorsionSpring local dragonboneUpgradeKit = argsDragonboneUpgradeKit local dragonKiteshield = argsDragonKiteshield local draconicVisage = argsDraconicVisage local dragonkinJournal = argsDragonkinJournal local queenBlackDragonScale = argsQueenBlackDragonScale math.randomseed(os.time) for i=1,kills do   local uniqueTableRNG = math.random(1, 128) local draconicVisageRNG = math.random(1, draconicVisageDropRate) local dragonkinJournalRNG = math.random(1, 19) if uniqueTableRNG == 1 then dragonKiteshield = dragonKiteshield + 1 elseif uniqueTableRNG >= 2 and uniqueTableRNG <= 3 then dragonboneUpgradeKit = dragonboneUpgradeKit + 1 elseif uniqueTableRNG >= 4 and uniqueTableRNG <= 8 then royalBoltStabiliser = royalBoltStabiliser + 1 elseif uniqueTableRNG >= 9 and uniqueTableRNG <= 13 then royalFrame = royalFrame + 1 elseif uniqueTableRNG >= 14 and uniqueTableRNG <= 18 then royalSight = royalSight + 1 elseif uniqueTableRNG >= 19 and uniqueTableRNG <= 23 then royalTorsionSpring = royalTorsionSpring + 1 end if draconicVisageRNG == 1 then draconicVisage = draconicVisage + 1 end if dragonkinJournal == 0 then dragonkinJournal = dragonkinJournal + 1 elseif dragonkinJournalRNG == 1 then dragonkinJournal = dragonkinJournal + 1 end queenBlackDragonScale = queenBlackDragonScale + petRNG(petDropRate, petThreshold, currentKillCount) currentKillCount = currentKillCount + 1 if royalBoltStabiliser >= 1 and royalFrame >= 1 and royalSight >= 1 and royalTorsionSpring >= 1 and dragonboneUpgradeKit >= 1 and dragonKiteshield >= 1 and draconicVisage >= 1 and dragonkinJournal >= 4 and queenBlackDragonScale >= 1 then bossLogCompletionCount = bossLogCompletionCount + 1 endKillCount = i     local totalKills = endKillCount - startKillCount if totalKills > mostKills then mostKills = totalKills end if totalKills < leastKills then leastKills = totalKills end currentKillCount = killCount startKillCount = i     royalBoltStabiliser = argsRoyalBoltStabiliser royalFrame = argsRoyalFrame royalSight = argsRoyalSight royalTorsionSpring = argsRoyalTorsionSpring dragonboneUpgradeKit = argsDragonboneUpgradeKit dragonKiteshield = argsDragonKiteshield draconicVisage = argsDraconicVisage dragonkinJournal = argsDragonkinJournal queenBlackDragonScale = argsQueenBlackDragonScale end end local averageKills = kills / bossLogCompletionCount return results(kills, averageKills, leastKills, mostKills) end

function TheMagister(args) local kills = 1000000 local killCount = tonumber(args.killCount) local currentKillCount = killCount local startKillCount = 0 local endKillCount = 0 local leastKills = kills local mostKills = 0 local bossLogCompletionCount = 0 local phylacteryDropRate = 18--Phylactery local glovesOfPassageDropRate = 500--Gloves of passage local theMagistersJournal1DropRate = 10--The Magister's Journal 1 local theMagistersJournal2DropRate = 10--The Magister's Journal 2 local theMagistersJournal3DropRate = 10--The Magister's Journal 3 local theMagistersJournal4DropRate = 10--The Magister's Journal 4 local theMagistersJournal5DropRate = 10--The Magister's Journal 5 local petDropRate = 1000--Soul fragment local petThreshold = 200 local argsPhylactery = tonumber(args.phylactery) local argsGlovesOfPassage = tonumber(args.glovesOfPassage) local argsTheMagistersJournal = tonumber(args.theMagistersJournal1) + tonumber(args.theMagistersJournal2) + tonumber(args.theMagistersJournal3) + tonumber(args.theMagistersJournal4) + tonumber(args.theMagistersJournal5) local argsSoulFragment = tonumber(args.soulFragment) local phylactery = argsPhylactery local glovesOfPassage = argsGlovesOfPassage local theMagistersJournal = argsTheMagistersJournal local soulFragment = argsSoulFragment math.randomseed(os.time) for i=1,kills do   local phylacteryRNG = math.random(1, phylacteryDropRate) local glovesOfPassageRNG = math.random(1, glovesOfPassageDropRate) local theMagistersJournalRNG = math.random(1, 10) if phylacteryRNG == 1 then phylactery = phylactery + 1 end if glovesOfPassageRNG == 1 then glovesOfPassage = glovesOfPassage + 1 end if theMagistersJournalRNG == 1 then theMagistersJournal = theMagistersJournal + 1 end soulFragment = soulFragment + petRNG(petDropRate, petThreshold, currentKillCount) currentKillCount = currentKillCount + 1 if phylactery >= 1 and glovesOfPassage >=1 and theMagistersJournal >= 5 and soulFragment >= 1 then bossLogCompletionCount = bossLogCompletionCount + 1 endKillCount = i     local totalKills = endKillCount - startKillCount if totalKills > mostKills then mostKills = totalKills end if totalKills < leastKills then leastKills = totalKills end currentKillCount = killCount startKillCount = i     phylactery = argsPhylactery glovesOfPassage = argsGlovesOfPassage theMagistersJournal = argsTheMagistersJournal soulFragment = argsSoulFragment end end local averageKills = kills / bossLogCompletionCount return results(kills, averageKills, leastKills, mostKills) end

function TzHaar(args) local kills = 1000000 local killCount = tonumber(args.killCount) local currentKillCount = killCount local startKillCount = 0 local endKillCount = 0 local leastKills = kills local mostKills = 0 local bossLogCompletionCount = 0 local petDropRate = 200--Volcanic shard local petThreshold = 40 local argsFireCape = tonumber(args.fireCape) local argsTokHaarKal = tonumber(args.tokHaarKalKet) + tonumber(args.tokHaarKalXil) + tonumber(args.tokHaarKalMej) local argsVolcanicShard = tonumber(args.volcanicShard) local fireCape = argsFireCape local tokHaarKal = argsTokHaarKal local volcanicShard = argsVolcanicShard math.randomseed(os.time) for i=1,kills do   tokHaarKal = tokHaarKal + 1 volcanicShard = volcanicShard + petRNG(petDropRate, petThreshold, currentKillCount) currentKillCount = currentKillCount + 1 if tokHaarKal >= 3 and volcanicShard >= 1 then bossLogCompletionCount = bossLogCompletionCount + 1 endKillCount = i     local totalKills = endKillCount - startKillCount if totalKills > mostKills then mostKills = totalKills end if totalKills < leastKills then leastKills = totalKills end currentKillCount = killCount startKillCount = i     fireCape = argsFireCape tokHaarKal = argsTokHaarKal volcanicShard = argsVolcanicShard end end local averageKills = kills / bossLogCompletionCount return results(kills, averageKills, leastKills, mostKills) end

function petRNG(petDropRate, petThreshold, currentKillCount) local pet = 0 local petRNG = math.random(1, petDropRate) if petRNG <= math.min(math.floor(currentKillCount / petThreshold) + 1, 10) then pet = pet + 1 end return pet end

function results(kills, averageKills, leastKills, mostKills) local s = "" .. string.format("%.0f", kills) .. " bosses died in a click of a button! The selected boss collection log was completed in " .. string.format("%.0f", averageKills) .. " kill(s) on average, across a sample size of " .. string.format("%.0f", kills) .. " boss kills. The least amount of kill(s) it took to complete the selected boss collection log was " .. string.format("%.0f", leastKills) .. " kill(s). The most amount of kill(s) it took to complete the selected boss collection log was " .. string.format("%.0f", mostKills) .. " kill(s). " return s end

return p