Quest Tracking Preferences
KoLMafia internally tracks progress for a number of quests. These are stored as preferences in settings\[charactername]_prefs.
booPeakProgress
booPeakProgress tracks the hauntedness level of A-boo Peak. A value of 18, for instance, indicates that A-boo Peak is 18% haunted.
Possible values: 0 - 100
chasmBridgeProgress
chasmBridgeProgress tracks the player's progress in building a bridge across the Orc Chasm. A value of 10, for instance, indicates that the bridge is 10 planks long.
Possible values: 0 - 30
gnasirProgress
gnasirProgress is a nibble bitmask with one bit for each possible way you can advance Gnasir's quest. You can parse this with bitwise operators. Here's some code that demonstrates how to use it.
int gnasirProgress = get_property("gnasirProgress").to_int();
buffer gnasir;
if((gnasirProgress & 1) == 0)
print("Gnasir wants a stone rose");
if((gnasirProgress & 2) == 0)
print("Gnasir wants a can of black paint");
if((gnasirProgress & 4) == 0)
print("Gnasir wants a killing jar");
if((gnasirProgress & 8) == 0)
print("Gnasir wants a 15 worm-riding manual page");
if((gnasirProgress & 16) == 0)
print("You need to use a drum machine to ride the worm");
hiddenApartmentProgress tracks progress through the Hidden Apartment Building during the Quest for the Holy MacGuffin.
Possible values: 0, 1, 6 - 8
- 0: Haven't opened the Hidden Apartment Building
- 1: Hidden Apartment Building is open for adventuring
- 6: Encountered the Protector Spirit
- 7: Found the stone sphere
- 8: Placed the stone sphere in the relevant overgrown shrine
hiddenBowlingAlleyProgress tracks progress through the Hidden Bowling Alley during the Quest for the Holy MacGuffin.
Possible values: 0, 1, 6 - 8
- 0: Haven't opened the Hidden Bowling Alley
- 1: Hidden Bowling Alley is open for adventuring
- 6: Encountered the Protector Spirit
- 7: Found the stone sphere
- 8: Placed the stone sphere in the relevant overgrown shrine
hiddenHospitalProgress tracks progress through the Hidden Hospital during the Quest for the Holy MacGuffin.
Possible values: 0 - 8
- 0: Haven't opened the Hidden Hospital
- 1: Hidden Hospital is open for adventuring, but haven't bowled.
- 2-5: Number of times bowled is 1 less than hiddenHospitalProgress
- 6: Encountered the Protector Spirit
- 7: Found the stone sphere
- 8: Placed the stone sphere in the relevant overgrown shrine
hiddenOfficeProgress tracks progress through the Hidden Office Building during the Quest for the Holy MacGuffin.
Possible values: 0, 1, 6 - 8
- 0: Haven't opened the Hidden Office Building
- 1: Hidden Office Building is open for adventuring
- 6: Encountered the Protector Spirit
- 7: Found the stone sphere
- 8: Placed the stone sphere in the relevant overgrown shrine
merkinQuestPath
merkinQuestPath indicates which path the player has chosen in the Mer-Kin Deepcity, during the Sea Monkees Quest.
Possible values:
- none: Player has not yet chosen a path
- gladiator: Player will fight Yog-Urt, Elder Goddess of Hatred
- scholar: Player will fight Shub-Jigguwatt, Elder God of Violence
- done: Player has completed the Sea Monkees Quest
mothershipProgress
mothershipProgress tracks progress of the Bugbear Mothership. It goes from 0 to 3 as that level is cleared.
Possible values: 0-3
oilPeakProgress
oilPeakProgress tracks the remaining pressure at Oil Peak. It decreases as the player reduces the pressure in the zone.
Possible values: 0.00 - 310.66
- 310.66: Pressure not yet reduced
- 0.00: Subquest completed
questF01Primordia
l=unstarted
questF01Primordial,=Primordial Fear\
=unstarted
questF02Hyboria
=unstarted
questF03Future
=unstarted
questF04Elves
=unstarted
questF05Clancy
=unstarted
questG01Meatcar
Possible values: unstarted, started
questG02Whitecastle
=unstarted
questG03Ego
=started
questG04Nemesis
=started
questG05Dark
=unstarted
questG06Delivery
=unstarted
questI01Scapegoat
=unstarted
questI02Beat
=unstarted
questL02Larva
=finished
questL03Rat
=finished
questL04Bat
=finished
questL05Goblin
=finished
questL06Friar
=finished
questL07Cyrptic
=finished
questL08Trapper
=finished
questL09Lol
=unstarted
questL09Topping
=finished
questL10Garbage
=finished
questL11MacGuffin
=finished
questL11Manor
=finished
questL11Palindome
=finished
questL11Pyramid
=finished
questL11Worship
=finished
questL12War
=finished
questL13Final
=finished
questM01Untinker
=finished
questM02Artist
=unstarted
questM03Bugbear
=unstarted
questM04Galaktic
=started
questM05Toot
=unstarted
questM06Gourd
=unstarted
questM07Hammer
=unstarted
questM08Baker
=unstarted
questM09Rocks
=unstarted
questM10Azazel
=finished
questM11Postal
=unstarted
questM12Pirate
=finished
questM13Escape
=unstarted
questM14Bounty
=unstarted
questM15Lol
=started
questS01OldGuy
=finished
questS02Monkee
=unstarted
skateParkStatus
Status of Mothership Zones
- statusEngineering
- statusGalley
- statusMedbay
- statusMorgue
- statusNavigation
- statusScienceLab
- statusSonar
- statusSpecialOps
- statusWasteProcessing
All of these work the same way.
- 0-x (integers): insufficient bodata collected)
- open: all biodata collected and zone accessible
- unlocked: biodata collected but zone not yet accessible
- cleared: zone has been cleared
twinPeakProgress
twinPeakProgress is a nibble bitmask with least significant bit set for the first choice and the most significant for the fourth. You can parse this with bitwise operators. Here's some code that demonstrates how to use it.
void comma(buffer b, string s) {
if(length(b) > 0)
b.append(", ");
b.append(s);
}
boolean mysterious(int progress, int c) {
return (progress & (1 << c)) == 0;
}
string twinPeak() {
int p = get_property("twinPeakProgress").to_int();
buffer need;
if(mysterious(p, 0)) need.comma("4 Stench Resistance");
if(mysterious(p, 1)) need.comma("+50% Item Drop");
if(mysterious(p, 2)) need.comma("Jar of Oil");
// Only check for final if first three complete
if(length(need) == 0) {
if(mysterious(p, 3))
return "Need +40% Initiative";
return "Twin Peak Completed";
}
return "Need " + need;
}
warProgress
=unstarted
wineCellarProgress
=3