Feature - Implemented Quest tracking preferences change request(s)

Malibu Stacey

Active member
Been meaning to post this for a while & haven't had the time unforunately.
So back in November I did a huge overhaul of autoscend's quest handling functions because of KoE. Hence I was checking (and updating) the KoLMafia wiki page for quest tracking preferences a lot (you can see my changes here) and noticed a few issues with some things I think could be dealt with better:

questL09Topping - I've never seen this be set to step3. It always goes from step2 (spoke to the highland lord after building the bridge) to finished when you get the misty back item reward.
There's also no way to detect when each fire has been lit individually other than a call to visit_url("place.php?whichplace=highlands") which you then have to check if the return buffer contains fire1.gif, fire2.gif and/or fire3.gif.
booPeakProgress & oilPeakProgress tell you when you're done with their quests but both of those quests still require a final visit to the zone to actually light the fire.

questL10Garbage - As Actually Ed the Undying, this should go from unstarted -> step1 rather than unstarted -> started. Ed doesn't require an enchanted bean to be planted. The beanstalk exists from the start of the run, you're just blocked from accessing the top until you start the level 10 quest as Ed.

questL11Palindome - this is "unstarted" until adventuring in the Palindome. Doesn't make a lot of sense to me. Either it should be started when you read the diary same as the rest of the level 11 quest tracking properties or at the very worst, when you have acquired the Talisman. This was changed for KoE specifically but every other path it still does as described.

questM20Necklace - step2 seems to track something unnecessary. The wiki suggests that you can't get the pool ghost NC until you've seen the NC which gives you the pool cue so my suggestion is to set this to step2 when encountering That's your cue instead as encountering the pool ghost NC isn't important to the quest progress (you either win, get the library key and we're now step3 because the key is the important thing or you lose and have to get more pool skill).

Thanks.
 

gausie

D̰͕̝͚̤̥̙̐̇̑͗̒e͍͔͎͈͔ͥ̉̔̅́̈l̠̪̜͓̲ͧ̍̈́͛v̻̾ͤe͗̃ͥ̐̊ͬp̔͒ͪ
Staff member
questL09Topping is addressed in r19946

EDIT: and questL10Garbage is in r19947

I will leave questL11Palindome for Veracity as she chose to make it specifically for KoE and perhaps there is a reason.
 
Last edited:

Malibu Stacey

Active member
Finally hunted down the last one I had made notes on and managed to reproduce it.

questL04Bat can go backwards from step2 -> step1.
Unlock The Batrat and Ratbat Burrow through whatever means (sonar-in-a-biscuits or screambats) then visit your quest log (or more simply "refresh quests").

Code:
> refresh quests

Retrieving quest data...
Preference questL04Bat changed from step2 to step1
Requests complete.

Preference questL04Bat changed from step1 to step2 <- manually clicked on The Bat Hole in the relay browser.

> refresh quests

Retrieving quest data...
Preference questL04Bat changed from step2 to step1
Requests complete.

> ashq visit_url("place.php?whichplace=bathole");

Preference questL04Bat changed from step1 to step2

In normal adventuring via the relay browser this wouldn't be an issue because you'll first be in the Bat Hole which KoLMafia will parse and reset the property as above but if you're automating stuff, you can end up in a situation where you think you only have The Beanbat Chamber open when you actually have it and The Batrat and Ratbat Burrow. At this point using a sonar-in-a-biscuit or defeating a screambat will progress to step2 which then gets you stuck because you can use an infinite amount of sonar-in-a-biscuit and kill an infinite amount of screambats but without visiting the Bat Hole you'll be stuck on step2 forever (or worse, you visit the quest log or do another refresh quests and it goes back to step1 again).
 

Malibu Stacey

Active member
And found another one just today

questM16Temple isn't set to "finished" when you unlock the Hidden Temple using the Spooky Temple map. Not an issue for us as we use hidden_temple_unlocked() to check if that quest still needs done but should probably work similarly. Again "refresh quests" sets this correctly if you do it at any point after having used the Spooky Temple map with all the requisite stuff.

I need to double check the friars quest, not sure if autoscend is doing something correctly so I'll come back to that next run.

Thanks.
 
Last edited:

Malibu Stacey

Active member
EDIT: and questL10Garbage is in r19947

BTW This still doesn't allow adventuring in the airship without a visit to the beanstalk either manually in the relay browser or via visit_url("place.php?whichplace=beanstalk");
Lots of "This area is not available".

Code:
> version

KoLmafia v20.3 r19953
 

gausie

D̰͕̝͚̤̥̙̐̇̑͗̒e͍͔͎͈͔ͥ̉̔̅́̈l̠̪̜͓̲ͧ̍̈́͛v̻̾ͤe͗̃ͥ̐̊ͬp̔͒ͪ
Staff member
BTW This still doesn't allow adventuring in the airship without a visit to the beanstalk either manually in the relay browser or via visit_url("place.php?whichplace=beanstalk");
Lots of "This area is not available".

Code:
> version

KoLmafia v20.3 r19953

What is your value for questL10Garbage?
 

zarqon

Well-known member
If I may, I've got one too: the questM02Artist property doesn't get updated when visiting the following in sequence:

place.php?whichplace=town_wrong&action=townwrong_artist_quest
place.php?whichplace=town_wrong&action=townwrong_artist_noquest&getquest=1


It does start the quest with the Artist, but mafia doesn't recognize that until I visit the quest log.
 

Veracity

Developer
Staff member
questL11Palindome - this is "unstarted" until adventuring in the Palindome. Doesn't make a lot of sense to me. Either it should be started when you read the diary same as the rest of the level 11 quest tracking properties or at the very worst, when you have acquired the Talisman. This was changed for KoE specifically but every other path it still does as described.
qI will leave questL11Palindome for Veracity as she chose to make it specifically for KoE and perhaps there is a reason.
Used to be that KoL didn't actually "unlock" certain zones unless you saw evidence of them in the container document.
- If you planted a beanstalk in the plains, unless you actually SAW the beanstalk, you could not go to the PFA
- If you created the Talisman, you couldn't actually go to to the Palindome until you equipped it and SAW it in the plains.

Since you couldn't actually go to those places in KoL without navigating through the browser, I guess that made a certain amount of sense for them. However, now that KoL has chat macros to /go places (I think), perhaps they fixed that.

I added special handling to The Palindome for KoE, but left the existing code intact. When I split the existing validation code into two parts, I also left the code intact - if split into two parts. For example, in KoLAdventure.validate2:

Code:
		if ( this.adventureId.equals( AdventurePool.PALINDOME_ID ) )
		{
			AdventureResult talisman = ItemPool.get( ItemPool.TALISMAN, 1 );

			if ( !KoLCharacter.hasEquipped( talisman ) )
			{
				// This will pick an empty slot, or accessory1, if all are full
				RequestThread.postRequest( new EquipmentRequest( talisman ) );
			}

			// In Kingdom of Exploathing, the Palindome is in place.php?whichplace=exploathing,
			// not in plains.php. It is visible from the beginning, whether or not the Talisman
			// is equipped
			if ( KoLCharacter.isKingdomOfExploathing() )
			{
				// We have a talisman.
				return;
			}

			if ( QuestDatabase.isQuestLaterThan( Quest.PALINDOME, QuestDatabase.UNSTARTED ) )
			{
				// We have previously seen the Palindome on the plains. I.e., unlocked it.
				return;
			}

			// We have the Talisman equipped. Unlock the Palindome by looking at the plains.
			GenericRequest request = new PlaceRequest( "plains" );
			RequestThread.postRequest( request );
			this.isValidAdventure = request.responseText.contains( "palinlink.gif" ) ;
			return;
		}
If you have visited the plains and seen the Palindome, that part of the quest is "started".
If not, we visit it after equipping the talisman and thus activate KoL's trigger, while updating the quest and making it a valid place to adventure.

When the Palindome should be "started" also depends on what the quest log says about your progress towards it. My main, currently in a Plumber run, hit L11 near the end of yesterday and read the diary. She's not started Copperhead or the Red Zeppelin yet, so, the Palindome is certainly not available.

I'll take a look at that quest.
 

Veracity

Developer
Staff member
I will note this:

Code:
		PALINDOME( "questL11Palindome" ),
		SHEN( "questL11Shen" ),
		RON( "questL11Ron" ),
Since you can no longer get the Talisman from the pirates, you have to complete SHEN and RON to get it.
To me, setting it to "started" when you read the diary makes no sense.
Perhaps when you make it.

I'll do this today and will look at the quest log.
I'll also check if you still have to "unlock" it by looking at plains.php.
 

Veracity

Developer
Staff member
I made and equipped the Talisman.
I tried to automate a turn in the Palindome.
It worked.

I conclude that KoL has changed and that the Palindome quest can be "started" as soon as you make the Talisman.
 

Veracity

Developer
Staff member
Revision 19957 sets the Palindome quest to "started" when you create the Talisman o' Namsilat.
 

Malibu Stacey

Active member
What is your value for questL10Garbage?

It was step1 at the time. The script had just popped level 10 so the next thing it was attempting to do was adventure in the airship.

Code:
> [INFO] - Turn(407): Starting with 69 left at Level: 9
> [INFO] - Encounter: -20.0   Exp Bonus: 16.4125
> [INFO] - Meat Drop: 10.0	 Item Drop: 50.0
> [INFO] - HP: 63/68, MP: 54/273
> [INFO] - Tummy: 1/5 Liver: 0/4 Spleen: 35/35
> [INFO] - ML: 51 control: 11
> [INFO] - Ka Coins: 6 Lashes used: 23
> [INFO] - Delay between adventures... beep boop... 
> [INFO] - Looking at the billiards room: 14 <= 18 <= 18
> [INFO] - Well, maybe I'll just deal with not being drunk enough, punk

use 1 handful of hand chalk
You acquire an effect: Chalky Hand (5)
> [INFO] - Equipping pool cue to slot weapon
> [INFO] - Equipping [7961]Staff of Ed to slot weapon
> [INFO] - It's billiards time!

> [INFO] - Starting preadventure script...

> [INFO] - Maximizing: 5item,meat,0.5initiative,0.1da 1000max,dr,0.5all res,1.5mainstat,mox,-fumble,0.4hp,0.2mp 1000max,6mp regen,0.25spell damage,1.75spell damage percent,10exp,5Mysticality experience percent,-200combat 25max,+equip [7961]Staff of Ed

> [INFO] - Pre Adventure at The Haunted Billiards Room done, beep.

[408] The Haunted Billiards Room
Preference lastEncounter changed from That's Your Cue to chalkdust wraith
Encounter: chalkdust wraith
Preference _lastCombatStarted changed from 20200403065052 to 20200403065111
Round 0: Player Two wins initiative!
Round 1: You lose 1 hit point
> [INFO] - auto_combatHandler: 0
Preference auto_edCombatCount changed from 308 to 309
Preference auto_edCombatRoundCount changed from 413 to 414
Round 1: Player Two casts STORM OF THE SCARAB!
Round 2: Khesambek holds up some scrolls of ancient spells for you to reference while casting.
Round 2: chalkdust wraith takes 484 damage.
Round 2: Player Two wins the fight!
You acquire an item: handful of hand chalk
After Battle: You gain 6 Strongness
You gain a Muscle point!
After Battle: You gain 19 Wizardliness
You gain a Mysticality point!
You gain a Level!
After Battle: You gain 9 Sarcasm

cast 1 Wisdom of Thoth
You acquire an effect: Wisdom of Thoth (10)

cast 1 Prayer of Seshat
You acquire an effect: Prayer of Seshat (10)

cast 1 Power of Heka
You acquire an effect: Power of Heka (10)

cast 1 Bounty of Renenutet
You acquire an effect: Bounty of Renenutet (10)
> [INFO] - Target mp => 100 - Considering restore options at 62/70 HP with 14/276 MP
> [INFO] - Active Negative Effects => []
> [WARNING] - Target mp => 100 - Uh, couldnt determine an effective restoration mechanism. Sorry.
Preference choiceAdventure330 changed from 1 to 2
> [INFO] - Turn(408): Starting with 68 left at Level: 10
> [INFO] - Encounter: -20.0   Exp Bonus: 16.4125
> [INFO] - Meat Drop: 10.0	 Item Drop: 50.0
> [INFO] - HP: 62/70, MP: 14/276
> [INFO] - Tummy: 1/5 Liver: 0/4 Spleen: 35/35
> [INFO] - ML: 51 control: 11
> [INFO] - Ka Coins: 6 Lashes used: 23
> [INFO] - Delay between adventures... beep boop... 

Preference lastCouncilVisit changed from 9 to 10
Preference questL10Garbage changed from unstarted to step1
Visiting The Book of the Undying
> [INFO] - Skill points found: 0
Visiting The Servants' Quarters
> [INFO] - Imbuement points found: 4
Visiting The Servants' Quarters
> [INFO] - Servants points found: 0
Preference auto_edSkills changed from 9 to 10
> [INFO] - Fantasy Airship Fly Fly time
Preference choiceAdventure182 changed from 1 to 4

Inspecting the Giant Pile of Coffee Grounds
Preference unlockedLocations changed from 75--, The Shore, Inc. Travel Agency, Cobb's Knob Harem to 75--, The Shore, Inc. Travel Agency, Cobb's Knob Harem, The Penultimate Fantasy Airship
Preference nextAdventure changed from The Haunted Billiards Room to The Penultimate Fantasy Airship
Visiting The Servants' Quarters
Putting your Cat to work
Current servant: Amosenetiti, the Cat (lvl. 16, 282 xp)
> [INFO] - Starting preadventure script...
> [INFO] - Target mp => 40 - Considering restore options at 62/70 HP with 14/276 MP
> [INFO] - Active Negative Effects => []
> [INFO] - Using item doc galaktik's invigorating tonic as restore.

buy 1 Doc Galaktik's Invigorating Tonic for 90 each from Doc Galaktik's Medicine Show
You spent 90 Meat
You acquire an item: Doc Galaktik's Invigorating Tonic

use 1 Doc Galaktik's Invigorating Tonic
You gain 10 Mana Points
> [INFO] - Using item doc galaktik's invigorating tonic as restore.

buy 1 Doc Galaktik's Invigorating Tonic for 90 each from Doc Galaktik's Medicine Show
You spent 90 Meat
You acquire an item: Doc Galaktik's Invigorating Tonic

use 1 Doc Galaktik's Invigorating Tonic
You gain 10 Mana Points
> [INFO] - Using item doc galaktik's invigorating tonic as restore.

buy 1 Doc Galaktik's Invigorating Tonic for 90 each from Doc Galaktik's Medicine Show
You spent 90 Meat
You acquire an item: Doc Galaktik's Invigorating Tonic

use 1 Doc Galaktik's Invigorating Tonic
You gain 10 Mana Points

> [INFO] - Adjusting to have YR available for Burly Sidekick: skill Wrath of Ra
> [INFO] - Adjusting to have banisher available for MagiMechTech MechaMech: skill Curse of Vacation

equip hat miner's helmet
Preference auto_priorLocation changed from The Haunted Billiards Room to The Penultimate Fantasy Airship
> [INFO] - Pre Adventure at The Penultimate Fantasy Airship done, beep.
> [INFO] - Turn(408): Starting with 68 left at Level: 10
> [INFO] - Encounter: -20.0   Exp Bonus: 14.626785714285717
> [INFO] - Meat Drop: 10.0	 Item Drop: 97.66479394838265
> [INFO] - HP: 62/70, MP: 44/260
> [INFO] - Tummy: 1/5 Liver: 0/4 Spleen: 35/35
> [INFO] - ML: 51 control: 11
> [INFO] - Ka Coins: 6 Lashes used: 23
> [INFO] - Delay between adventures... beep boop... 

> [INFO] - Fantasy Airship Fly Fly time
> [INFO] - Starting preadventure script...

> [INFO] - Adjusting to have YR available for Burly Sidekick: skill Wrath of Ra
> [INFO] - Adjusting to have banisher available for MagiMechTech MechaMech: skill Curse of Vacation

> [INFO] - Maximizing: 5item,meat,0.5initiative,0.1da 1000max,dr,0.5all res,1.5mainstat,mox,-fumble,0.4hp,0.2mp 1000max,6mp regen,0.25spell damage,1.75spell damage percent,10exp,5Mysticality experience percent,-200combat 25max,50item 900max

> [INFO] - Pre Adventure at The Penultimate Fantasy Airship done, beep.
> [INFO] - Turn(408): Starting with 68 left at Level: 10
> [INFO] - Encounter: -20.0   Exp Bonus: 14.626785714285717
> [INFO] - Meat Drop: 10.0	 Item Drop: 97.66479394838265
> [INFO] - HP: 62/70, MP: 44/260
> [INFO] - Tummy: 1/5 Liver: 0/4 Spleen: 35/35
> [INFO] - ML: 51 control: 11
> [INFO] - Ka Coins: 6 Lashes used: 23
> [INFO] - Delay between adventures... beep boop... 

> [INFO] - Fantasy Airship Fly Fly time
> [INFO] - Starting preadventure script...

ad infinitum. I stripped out the maximizer preference changes as it's a lot of irrelevant spam.
 

Veracity

Developer
Staff member
This still doesn't allow adventuring in the airship without a visit to the beanstalk either manually in the relay browser or via visit_url("place.php?whichplace=beanstalk");
Lots of "This area is not available".
This is because, as I mentioned in a different note, KoL used to require you to visit the beanstalk before you could adventure above it.
Perhaps they fixed that when they fixed tha Palindome, which had a similar "unlock" mechanism.
I'll be back to the airship on Monday or Tuesday and will test this then.
 

taltamir

Member
Beanbat chamber broken in recent mafia

Recent update broke the beanbat chamber

I was using mafia r19957, doing a plumber run

This is my bat hole
NLD8fN2.png

Clicking begin here
DriMdBs.png

gives the output
Code:
Visit to BatHole: The Beanbat Chamber in progress...
[COLOR=red]You      need 1 more sonar-in-a-biscuit to continue.[/COLOR]

manually clicking on the beanbat chamber works
Code:
       [81] The Beanbat Chamber
Encounter: beanbat
Round 0: taltamir wins      initiative!

After the manual attempt I tried
Code:
[COLOR=olive]> ash adv1($location[The Beanbat Chamber], 1, "");[/COLOR]

Visit to BatHole: The Beanbat Chamber in progress...
[COLOR=red]You need 1 more sonar-in-a-biscuit to continue.[/COLOR]

prefref questL04Bat
says it is on step2

CLI command "refresh quests"
has no effect on either the adv1 attempt nor on the prefref result

View attachment 9672
 

taltamir

Member
actually this is probably caused by
r19954 Better quest tracking and adventure validation for The Bat Hole
 

Malibu Stacey

Active member
questL13Warehouse appears to not be set to "finished" any more.

Code:
[843] The Secret Council Warehouse
Preference lastEncounter changed from warehouse clerk to You Found It!
Encounter: You Found It!
You acquire an item: Holy MacGuffin

Council of Loathing

"Boss!" Amun exclaims. "You did it, didn't you? You retrieved the Holy MacGuffin!"

"I did indeed do that," you say, sounding rather pleased with yourself.

"Can I, um… Can I see it?"

You glance around to make sure you're alone, then show the MacGuffin to Amun. He gives a low whistle.

"It's beautiful," he says, in awe. "…Er, what is it, exactly?"

"It's something for you to not ask questions about."

"I understand, boss," he nods.

Sensing his disappointment, you sigh. "Look, Amun… you're a good dude, and you did a hell of a job, so I'll let you in on a secret. I don't actually know what this thing is."

Amun blinks, surprised. "Really?"

"Yeah. Look, you know how I was ticked at those three morons that lost the pieces of my Staff? Because they had one job, and they screwed it up? Well, looking after this thing is my one job. The Holy MacGuffin -- I'm the one that gave it that silly name, because I haven't got a damn clue what's so important about it. Only that it is very, very important."

"I see. Do you think you'll ever find out, boss?"

"Beats me," you shrug. "Anyway, I'd better get it back to my tomb. Thanks for your help, Amun." The two of you shake hands. "Good luck with… er, whatever it is you do when I'm not around."

Amun gives you a deep bow as you leave the alley.

Code:
> refresh quests

Retrieving quest data...
Requests complete.

> prefref questL13Warehouse

Name Value Default Scope
questL13Warehouse started unstarted user

Ed's Holy Macguffin is $item[7965] btw (not the same as the regular one for some weird reason only known to KoL devs) if that helps.
 

Veracity

Developer
Staff member
I expect it never worked; we had "Amum", rather than "Amun" in the council message.
Revision 19964
 
Top