Bug - Confirmed Maximizer didn't equip a weapon

SLOT WEAPON
[(none) (4,318), toy accordion (4,318), antique accordion (4,318)]

What that line is telling me, I think, is that it does not matter whether no weapon is equipped, a toy accordion is equipped or an antique accordion is equipped. I'd bet that, since the choice does not effect the score the maximizer just picks the first one, hence no weapon. I need to check that.
 
Ah! Actually, I was wrong. It went back to adventuring unarmed until I got the antique machete to clear the Hidden City dense lianas and after that it kept the machete equipped.
OK. There are times when the maximizer string is built to favor keeping existing equipment if swapping it out doesn't increase the score. That might be what is going on in this case.
 
Not wanting to gum this thread up with up with the thoughts of, let me stress this again, a very ignorant person - but in my first post, there were better options in the ACCESSORY2 and STICKER3 slots, but they didn't seem to have been considered. I wonder what output the maximiser is looking at. Just the WEAPON slot?
Hi! Passing ignoramus here, who's interested in and (mildly) affected by this issue.

First of all, thank you for taking time out of your day to think about this. I really appreciate that you are.

I'm in a standard HC Sauceror run. Here's what I see (with boldface added by me). As an ignoramus, I don't understand what the relevance of STICKER3 slot vs the WEAPON slot is, but in an ideal world I'd like Maximiser to equip one of the spell damage weapons, and the numbers for them are higher than being unarmed. Heck, I'd even be happy with it equipping one of the melee weapons so I could stab things more effectively if I had to, and I'm not clear why they're rated equal to being unarmed. Deciding to wield the turtle totem of all things, then straight away taking off seems (again, to me - an ignoramus) to be an odd choice.
 
Not wanting to gum this thread up with up with the thoughts of, let me stress this again, a very ignorant person - but in my first post, there were better options in the ACCESSORY2 and STICKER3 slots, but they didn't seem to have been considered. I wonder what output the maximiser is looking at. Just the WEAPON slot?
Consider adding dump or 2 dump to the maximizer string that is not selecting what you think it should. The road to understanding begins there.

Most of the time someone says the maximizer can do "better" they are thinking of a factor that is not better or considered with the maximizer string that they are using and the string needs to be modified so the user and the maximizer have better agreement about what "better" actually means.
 
Howdy fine mafia folks! I ran into this issue today (after multiple months of not experiencing it), and I wanted to share some logs, thoughts, and debugging.

* KoLMafia-28048
* Beginning of a normal seal clubber run in the Quantum Terrarium path
* I have (at least) the standard IOTMs, and most skills permed
* I ran into this while running the autoscend script, and was able to stop the script when I saw the relevant error message, and tweak my modifier maximizer settings some

> [INFO] Generating Floundry Locations for the session...
> [DEBUG] Adding "+200bonus tiny stillsuit" to current maximizer statement
> [DEBUG] Adding "+200bonus spring shoes" to current maximizer statement
> [DEBUG] Adding "+200bonus carnivorous potted plant" to current maximizer statement
> [DEBUG] Adding "+200bonus June cleaver" to current maximizer statement
> [DEBUG] Adding "+200bonus designer sweatpants" to current maximizer statement
> [DEBUG] Adding "effective" to current maximizer statement
Maximizer: 5item,meat,0.5initiative,0.1da 1000max,dr,0.5all res,1.5mainstat,-fumble,mox,0.4hp,0.2mp 1000max,3mp regen,1.5weapon damage,0.75weapon damage percent,1.5elemental damage,2familiar weight,5familiar exp,10exp,5Muscle experience percent,+200bonus tiny stillsuit,+200bonus spring shoes,+200bonus carnivorous potted plant,+200bonus June cleaver,+200bonus designer sweatpants,effective

equip back Rain-Doh red wings
> [ERROR] It looks like the maximizer didn't equip any weapons for you. Lets dump some debugging info to help the KolMafia devs look into this.
> [DEBUG] Adding "2 dump" to current maximizer statement
Maximizer: 5item,meat,0.5initiative,0.1da 1000max,dr,0.5all res,1.5mainstat,-fumble,mox,0.4hp,0.2mp 1000max,3mp regen,1.5weapon damage,0.75weapon damage percent,1.5elemental damage,2familiar weight,5familiar exp,10exp,5Muscle experience percent,+200bonus tiny stillsuit,+200bonus spring shoes,+200bonus carnivorous potted plant,+200bonus June cleaver,+200bonus designer sweatpants,effective,2 dump
> [DEBUG] Removing "2 dump" from current maximizer statement

* As I'm writing this, I reailze that the "2 dump" output didn't actually get written to the log, just CLI output, sorry! Will save it next time (will try to repro tomorrow)
* I equipped june cleaver & carnivorous plant, and ran the modifier maximizer manually. With the script's "default" modmax string above, it wanted me to unequip my weapon and offhand. If I removed "0.5 initiative" from the string, it wanted to keep them equipped instead. It even wanted to keep them equipped as I crept up initiative, all the way up to "0.4 initiative". At "0.5 initiative" it wanted to unequip them again
* I modified the script's code to set "+400bonus June cleaver" instead (from the default "+200bonus June cleaver"), and that extra weighting unblocked it and let me automate the rest of my turns
* Edit: I've since went back and read the thread I'm responding to. Thanks frono & crew for the notes -- I have some ideas on what to test next time this comes up
* Edit: trying to understand how kung fu hustler effects get applied: https://github.com/kolmafia/kolmafia/commit/fadce38b607da9a3a6f7e18c9372153efb9192d7

Will try to grab more info and share here! Let me know if adding full logs would be helpful or if you have any questions. Thanks.
 
Last edited:
Thanks. What will be most useful in motivating me to put serious time back into this (as opposed to thinking about it once in a while) would be data for a specific case. I want a maximizer string, a set of equipment, and a weapon that is clearly better than nothing according to our understanding of the string but the weapon is not suggested or equipped.

My hypothesis is that given what we have asked the maximizer to do "No weapon" is an acceptable answer. It may be acceptable because of tie breaking. It may be acceptable because of some of the choices I think the maximizer makes for criteria that are not exposed to the user. Or it may be acceptable because there are multiple solutions that have the same score and the selection is somewhat arbitrary.

If there is a bug then it should be identified and fixed. But if there is a feature request to always equip a weapon then there is probably some discussion about the best way to make that happen, especially if Surprising Fist or spell driven combats are expected.
 
Thanks. What will be most useful in motivating me to put serious time back into this (as opposed to thinking about it once in a while) would be data for a specific case. I want a maximizer string, a set of equipment, and a weapon that is clearly better than nothing according to our understanding of the string but the weapon is not suggested or equipped.

My hypothesis is that given what we have asked the maximizer to do "No weapon" is an acceptable answer. It may be acceptable because of tie breaking. It may be acceptable because of some of the choices I think the maximizer makes for criteria that are not exposed to the user. Or it may be acceptable because there are multiple solutions that have the same score and the selection is somewhat arbitrary.

If there is a bug then it should be identified and fixed. But if there is a feature request to always equip a weapon then there is probably some discussion about the best way to make that happen, especially if Surprising Fist or spell driven combats are expected.
As an autoscend dev, I'd be happy to put in some extra, optional logging to help nail down this issue. What type of info would be helpful? If a slot is empty, redo the call to maximizer with `2 dump` added? Or perhaps halt the script at that point to let the user (one of us) debug manually and stay in the "failure" state
 
As an autoscend dev, I'd be happy to put in some extra, optional logging to help nail down this issue. What type of info would be helpful? If a slot is empty, redo the call to maximizer with `2 dump` added? Or perhaps halt the script at that point to let the user (one of us) debug manually and stay in the "failure" state

My Holy Grail is a maximizer string that does not equip a weapon and the specific weapon that the user thinks should have been equipped. Add context and be able to explain why the weapon is a better pick than no weapon. A simplistic example - which is not real - is maximizing for myst and equipping nothing (hence myst +0) when something else that is myst +2 is available.

A stop followed by a rerun with dumping and user analysis might be the place to start.

I'm also interested in cases where a weapon is currently equipped and the Maximizer suggests unequipping it and the user can show why that is the wrong choice. Similarly no weapon equipped and the Maximizer suggests no weapon would be of interest.

I guess if you are willing and able to have autoscend assist in this then I need to honor that by ramping up my efforts to debug this. I'll start reacquainting myself with some of the code instead of reacquainting myself with Fallout 4 :-)
 
Fallout 4 is something fun to be acquainted with as well! Turns out Malibu had already put most the work in for this, where it can detect if the issue happens and prints a 2 dump. I've made a PR which adds a pref to instead of trying to work around, abort so we can debug in the "failure" state
 
Oh frabjous day! I was able to repro this case, and hit the new abort&log (thanks Alium!)

I'll keep my char in this error state -- let me know if there's any maximizer strings y'all want.

The main thing I notice from the log is that SLOT WEAPON only contains ranged weapons (edit: two-handed weapons), e.g. "(none)" and "toy accordion" are listed and have tied scores (1,691). All my melee (edit: melee offhands) weapons show up in SLOT ACCESSORY2, where there are some higher scores: "June cleaver (1,912)" and "candy cane sword cane" (1,727)

Code:
[ERROR] It looks like the maximizer didn't equip any weapons for you. Lets dump some debugging info to help the KolMafia devs look into this.
[DEBUG] Adding "2 dump" to current maximizer statement
Maximizer: 5item,meat,0.5initiative,0.1da 1000max,dr,0.5all res,1.5mainstat,-fumble,mox,0.4hp,0.2mp 1000max,3mp regen,0.25spell damage,1.75spell damage percent,2familiar weight,5familiar exp,10exp,5Mysticality experience percent,+200bonus spring shoes,+200bonus June cleaver,+200bonus designer sweatpants,2 dump
Maximizing...
Outfits [Bounty-Hunting Rig, Hateful Habiliment, Eldritch Equipage]
SLOT HAT
[seal-skull helmet (2,060), ravioli hat (2,060), Hollandaise helmet (2,060), disco mask (2,061), mariachi hat (2,061), helmet turtle (2,061), coconut shell (2,064), Apriling band helmet (2,133)]
[Apriling band helmet]
SLOT WEAPON
[(none) (1,691), toy accordion (1,691)]
[toy accordion]
SLOT OFFHAND
[hobo code binder (1,691), stuffed spooky gravy fairy (1,691), stuffed astral badger (1,691), (none) (1,691), magical ice cubes (1,691), Roman Candelabra (1,739), unbreakable umbrella (broken) (1,870), august scepter (1,870)]
[august scepter]
SLOT CONTAINER
[bat wings (2,133)]
[bat wings]
SLOT SHIRT
[Jurassic Parka (kachungasaur mode) (2,133)]
[Jurassic Parka (kachungasaur mode)]
SLOT PANTS
[old sweatpants (1,890), tearaway pants (1,968), designer sweatpants (2,133)]
[designer sweatpants]
SLOT ACCESSORY1
[Everfull Dart Holster (2,037), cursed monkey's paw (2,056), astral mask (2,113), Cincho de Mayo (2,133), combat lover's locket (2,164), spring shoes (2,263)]
[spring shoes, combat lover's locket, Cincho de Mayo]
SLOT ACCESSORY2
[(none) (1,691), seal-clubbing club (1,691), turtle totem (1,691), pasta spoon (1,691), saucepan (1,691), little paper umbrella (1,691), candy cane sword cane (1,727), June cleaver (1,912)]
[June cleaver]
SLOT ACCESSORY3
[(none) (1,691), disco ball (1,691)]
[disco ball]
SLOT STICKER3
[(none) (1,691), seal-clubbing club (1,691), turtle totem (1,691), pasta spoon (1,691), saucepan (1,691), disco ball (1,691), little paper umbrella (1,691), candy cane sword cane (1,727), June cleaver (1,912)]
[June cleaver, candy cane sword cane]
24 combinations checked, best score 2,133.54
[DEBUG] Removing "2 dump" from current maximizer statement
NO WEAPON WAS EQUIPPED BY THE MAXIMIZER. REPORT THIS IN DISCORD AND INCLUDE YOUR SESSION LOG! YOU CAN RE-RUN AUTOSCEND AND IT SHOULD RUN OK (possibly).
 
Last edited:
Thank you. I don't know what this is trying to tell me yet but I have a lot of questions to ask of the Maximizer code :-)

What class is the character and on what path?

I think my first step will be to try and write a test that reproduces this. I will report progress on that because, in theory, if I have a test then we don't need your character to remain in suspense.
 
ACCESSORY2 is where we store one-handed weapons.

It should still be equipping them. Especially June cleaver, which can always be used to hit.
 
Currently a Pastamancer in Hardcore Avant Guard, Opossum sign.

Here's the output from 'equip':
Code:
> equip

Hat: Apriling band helmet
Weapon: (none)
Off-hand: (none)
Shirt: Jurassic Parka (kachungasaur mode)
Pants: designer sweatpants
Back: bat wings

Acc. 1: Cincho de Mayo
Acc. 2: combat lover's locket
Acc. 3: spring shoes

Pet: (none)
Item: (none)



And thanks for the tip about ACCESSORY2 and one-hand weapons, Ryo. Will read more on it :)
  • Evaluator slot mapping: "except that the slots acc2, acc3, sticker2, sticker3 are instead the Evaluator reused slots: OFFHAND_MELEE, OFFHAND_RANGED, WATCHES, WEAPON_1H" (from SlotList)
  • // Equipment slots, that aren't the primary slot of any item type,
    // that are repurposed here (rather than making the array bigger).
    // Watches have to be handled specially because only one can be
    // used - otherwise, they'd fill up the list, leaving no room for
    // any non-watches to put in the other two acc slots.
    // 1-handed weapons have to be ranked separately due to the following
    // possibility: all of your best weapons are 2-hand, but you've got
    // a really good off-hand, better than any weapon. There would
    // otherwise be no suitable weapons to go with that off-hand.
    static final Slot OFFHAND_MELEE = Slot.ACCESSORY2;
    static final Slot OFFHAND_RANGED = Slot.ACCESSORY3;
    static final Slot WATCHES = Slot.STICKER2;
    static final Slot WEAPON_1H = Slot.STICKER3;
    (from Evaluator)
 
Last edited:
Running out of time but I have a test that includes most of the equipment that was considered. The test does recommend the cleaver and issues the commands to equip it. My test doesn't match your case because my scores are lower. Of greater interest is the test failed because under one set of conditions it wanted to fold the umbrella and in the test environment that generated an unhandled choice. To be continued.
 
Even setting aside the melee / ranged distinction, picking e.g. disco ball / august scepter would be better than toy accordion alone. But the weapons options don't even consider anything but toy accordion, which prevents an offhand.

And then toy accordion wins but isn't equipped (?)
 
Day 2 of ascension, character is luckily still in the same spot. (e.g. maximizer is failing in the same way).

A few more observations:

* Without changing anything in my inventory, changing the maximizer weight from the default "+200bonus June cleaver" will eventually suggest that I equip a weapon and offhand.
maximizer1.PNGmaximizer2.PNG

* Looking for the threshold, the maximizer will first start suggesting equipping the June cleaver (& offhand) at +346 bonus

* "2 dump" output at +345 bonus (when unarmed is preferred)
Code:
Maximizer: 5item,meat,0.5initiative,0.1da 1000max,dr,0.5all    res,1.5mainstat,-fumble,mox,0.4hp,0.2mp 1000max,3mp regen,0.25spell    damage,1.75spell damage percent,2familiar weight,5familiar    exp,10exp,5Mysticality experience percent,+200bonus spring shoes,+345bonus    June cleaver,+200bonus designer sweatpants,2 dump
Maximizing...
Outfits    [Bounty-Hunting Rig, Hateful Habiliment, Eldritch Equipage]
SLOT HAT
[seal-skull    helmet (2,353), ravioli hat (2,353), Hollandaise helmet (2,353), disco    mask (2,354), mariachi hat (2,354), helmet turtle (2,354), coconut shell    (2,357), Apriling band helmet (2,426)]
[Apriling band helmet]
SLOT    WEAPON
[(none) (1,879), toy accordion (1,879)]
[toy accordion]
SLOT    OFFHAND
[hobo code binder (1,879), stuffed spooky gravy fairy (1,879),    stuffed astral badger (1,879), stuffed MagiMechTech MicroMechaMech    (1,879), stuffed snowy owl (1,879), (none) (1,879), magical ice cubes    (1,879), Roman Candelabra (1,927), unbreakable umbrella (broken) (2,059),    august scepter (2,059)]
[august scepter]
SLOT CONTAINER
[bat    wings (2,426)]
[bat wings]
SLOT SHIRT
[Jurassic Parka    (kachungasaur mode) (2,426)]
[Jurassic Parka (kachungasaur mode)]
SLOT    PANTS
[old sweatpants (2,183), tearaway pants (2,261), designer    sweatpants (2,426)]
[designer sweatpants]
SLOT ACCESSORY1
[Everfull    Dart Holster (2,330), cursed monkey's paw (2,349), astral mask (2,406),    Cincho de Mayo (2,426), combat lover's locket (2,457), spring shoes    (2,556)]
[spring shoes, combat lover's locket, Cincho de Mayo]
SLOT    ACCESSORY2
[(none) (1,879), seal-clubbing club (1,879), turtle totem    (1,879), pasta spoon (1,879), saucepan (1,879), little paper umbrella    (1,880), candy cane sword cane (1,915), June cleaver (2,245)]
[June    cleaver]
SLOT ACCESSORY3
[(none) (1,879), disco ball (1,879)]
[disco    ball]
SLOT STICKER3
[(none) (1,879), seal-clubbing club (1,879),    turtle totem (1,879), pasta spoon (1,879), saucepan (1,879), disco ball    (1,879), little paper umbrella (1,880), candy cane sword cane (1,915),    June cleaver (2,245)]
[June cleaver, candy cane sword cane]
24    combinations checked, best score 2,426.07

* "2 dump" output at +346 bonus (when weapon & offhand is preferred)
Code:
Maximizer: 5item,meat,0.5initiative,0.1da 1000max,dr,0.5all    res,1.5mainstat,-fumble,mox,0.4hp,0.2mp 1000max,3mp regen,0.25spell    damage,1.75spell damage percent,2familiar weight,5familiar    exp,10exp,5Mysticality experience percent,+200bonus spring shoes,+346bonus    June cleaver,+200bonus designer sweatpants,2 dump
Maximizing...
Outfits    [Bounty-Hunting Rig, Hateful Habiliment, Eldritch Equipage]
SLOT HAT
[seal-skull    helmet (2,353), ravioli hat (2,353), Hollandaise helmet (2,353), disco    mask (2,354), mariachi hat (2,354), helmet turtle (2,354), coconut shell    (2,357), Apriling band helmet (2,426)]
[Apriling band helmet]
SLOT    WEAPON
[(none) (1,879), toy accordion (1,879)]
[toy accordion]
SLOT    OFFHAND
[hobo code binder (1,879), stuffed spooky gravy fairy (1,879),    stuffed astral badger (1,879), stuffed MagiMechTech MicroMechaMech    (1,879), stuffed snowy owl (1,879), (none) (1,879), magical ice cubes    (1,879), Roman Candelabra (1,927), unbreakable umbrella (broken) (2,059),    august scepter (2,059)]
[august scepter]
SLOT CONTAINER
[bat    wings (2,426)]
[bat wings]
SLOT SHIRT
[Jurassic Parka    (kachungasaur mode) (2,426)]
[Jurassic Parka (kachungasaur mode)]
SLOT    PANTS
[old sweatpants (2,183), tearaway pants (2,261), designer    sweatpants (2,426)]
[designer sweatpants]
SLOT ACCESSORY1
[Everfull    Dart Holster (2,330), cursed monkey's paw (2,349), astral mask (2,406),    Cincho de Mayo (2,426), combat lover's locket (2,457), spring shoes    (2,556)]
[spring shoes, combat lover's locket, Cincho de Mayo]
SLOT    ACCESSORY2
[(none) (1,879), seal-clubbing club (1,879), turtle totem    (1,879), pasta spoon (1,879), saucepan (1,879), little paper umbrella    (1,880), candy cane sword cane (1,915), June cleaver (2,246)]
[June    cleaver]
SLOT ACCESSORY3
[(none) (1,879), disco ball (1,879)]
[disco    ball]
SLOT STICKER3
[(none) (1,879), seal-clubbing club (1,879),    turtle totem (1,879), pasta spoon (1,879), saucepan (1,879), disco ball    (1,879), little paper umbrella (1,880), candy cane sword cane (1,915),    June cleaver (2,246)]
[June cleaver, candy cane sword cane]
24    combinations checked, best score 2,426.45

* and a few more tests with putting an item into my closet to see how the suggestions change
Code:
// 1. get rid of our only 2-handed weapon

> closet put toy accordion

Placing items into closet...
Preference _concoctionDatabaseRefreshes changed from 27 to 28
Requests complete.

Maximizer: 5item,meat,0.5initiative,0.1da 1000max,dr,0.5all res,1.5mainstat,-fumble,mox,0.4hp,0.2mp 1000max,3mp regen,0.25spell damage,1.75spell damage percent,2familiar weight,5familiar exp,10exp,5Mysticality experience percent,+200bonus spring shoes,+200bonus June cleaver,+200bonus designer sweatpants,2 dump
Maximizing...
Outfits [Hateful Habiliment, Eldritch Equipage]
SLOT HAT
[seal-skull helmet (2,353), ravioli hat (2,353), Hollandaise helmet (2,353), disco mask (2,354), mariachi hat (2,354), helmet turtle (2,354), coconut shell (2,357), Apriling band helmet (2,426)]
[Apriling band helmet]
SLOT OFFHAND
[hobo code binder (1,879), stuffed spooky gravy fairy (1,879), stuffed astral badger (1,879), stuffed MagiMechTech MicroMechaMech (1,879), stuffed snowy owl (1,879), (none) (1,879), magical ice cubes (1,879), Roman Candelabra (1,927), unbreakable umbrella (broken) (2,059), august scepter (2,059)]
[august scepter]
SLOT CONTAINER
[bat wings (2,426)]
[bat wings]
SLOT SHIRT
[Jurassic Parka (kachungasaur mode) (2,426)]
[Jurassic Parka (kachungasaur mode)]
SLOT PANTS
[old sweatpants (2,183), tearaway pants (2,261), designer sweatpants (2,426)]
[designer sweatpants]
SLOT ACCESSORY1
[Everfull Dart Holster (2,330), cursed monkey's paw (2,349), astral mask (2,406), Cincho de Mayo (2,426), combat lover's locket (2,457), spring shoes (2,556)]
[spring shoes, combat lover's locket, Cincho de Mayo]
SLOT ACCESSORY2
[(none) (1,879), seal-clubbing club (1,879), turtle totem (1,879), pasta spoon (1,879), saucepan (1,879), little paper umbrella (1,880), candy cane sword cane (1,915), June cleaver (2,100)]
[June cleaver]
SLOT ACCESSORY3
[(none) (1,879), disco ball (1,879)]
[disco ball]
SLOT STICKER3
[(none) (1,879), seal-clubbing club (1,879), turtle totem (1,879), pasta spoon (1,879), saucepan (1,879), disco ball (1,879), little paper umbrella (1,880), candy cane sword cane (1,915), June cleaver (2,100)]
[June cleaver, candy cane sword cane]

> closet take toy accordion

Removing items from closet...
You acquire an item: toy accordion
Preference _concoctionDatabaseRefreshes changed from 28 to 29
Requests complete.

---

// 2. someone mentioned umbrella possibly breaking the maximizer in cases. skip umbrella this run

> closet put unbreakable umbrella

Placing items into closet...
Preference _concoctionDatabaseRefreshes changed from 29 to 30
Requests complete.

Maximizer: 5item,meat,0.5initiative,0.1da 1000max,dr,0.5all res,1.5mainstat,-fumble,mox,0.4hp,0.2mp 1000max,3mp regen,0.25spell damage,1.75spell damage percent,2familiar weight,5familiar exp,10exp,5Mysticality experience percent,+200bonus spring shoes,+200bonus June cleaver,+200bonus designer sweatpants,2 dump
Maximizing...
Outfits [Bounty-Hunting Rig, Hateful Habiliment, Eldritch Equipage]
SLOT HAT
[seal-skull helmet (2,353), ravioli hat (2,353), Hollandaise helmet (2,353), disco mask (2,354), mariachi hat (2,354), helmet turtle (2,354), coconut shell (2,357), Apriling band helmet (2,426)]
[Apriling band helmet]
SLOT WEAPON
[(none) (1,879), toy accordion (1,879)]
[toy accordion]
SLOT OFFHAND
[hobo code binder (1,879), stuffed spooky gravy fairy (1,879), stuffed astral badger (1,879), stuffed MagiMechTech MicroMechaMech (1,879), stuffed snowy owl (1,879), (none) (1,879), magical ice cubes (1,879), Roman Candelabra (1,927), august scepter (2,059)]
[august scepter]
SLOT CONTAINER
[bat wings (2,426)]
[bat wings]
SLOT SHIRT
[Jurassic Parka (kachungasaur mode) (2,426)]
[Jurassic Parka (kachungasaur mode)]
SLOT PANTS
[old sweatpants (2,183), tearaway pants (2,261), designer sweatpants (2,426)]
[designer sweatpants]
SLOT ACCESSORY1
[Everfull Dart Holster (2,330), cursed monkey's paw (2,349), astral mask (2,406), Cincho de Mayo (2,426), combat lover's locket (2,457), spring shoes (2,556)]
[spring shoes, combat lover's locket, Cincho de Mayo]
SLOT ACCESSORY2
[(none) (1,879), seal-clubbing club (1,879), turtle totem (1,879), pasta spoon (1,879), saucepan (1,879), little paper umbrella (1,880), candy cane sword cane (1,915), June cleaver (2,100)]
[June cleaver]
SLOT ACCESSORY3
[(none) (1,879), disco ball (1,879)]
[disco ball]
SLOT STICKER3
[(none) (1,879), seal-clubbing club (1,879), turtle totem (1,879), pasta spoon (1,879), saucepan (1,879), disco ball (1,879), little paper umbrella (1,880), candy cane sword cane (1,915), June cleaver (2,100)]
[June cleaver, candy cane sword cane]
24 combinations checked, best score 2,426.07
Preference commandBufferGCLI changed from autoscend#garbo ascend#git update#garbo ascend#CONSUME ALL#autoscend#garbo ascend#familiar stooper; cast ode; drink stillsuit distillate#CONSUME NIGHTCAP VALUE 4000#garbo ascend#acquire calzone of legend; acquire deep dish of legend; acquire pizza of legend; acquire non-euclidean angle; acquire abstraction: category; breakfast#PVP_MAB#autoscend#equip#help closet#closet put toy accordion#closet take toy accordion#stash put unbreakable umbrella#stash take unbreakable embrella#closet put unbreakable umbrella to garbo ascend#git update#garbo ascend#CONSUME ALL#autoscend#garbo ascend#familiar stooper; cast ode; drink stillsuit distillate#CONSUME NIGHTCAP VALUE 4000#garbo ascend#acquire calzone of legend; acquire deep dish of legend; acquire pizza of legend; acquire non-euclidean angle; acquire abstraction: category; breakfast#PVP_MAB#autoscend#equip#help closet#closet put toy accordion#closet take toy accordion#stash put unbreakable umbrella#stash take unbreakable embrella#closet put unbreakable umbrella#closet take unbreakable umbrella

> closet take unbreakable umbrella

Removing items from closet...
You acquire an item: unbreakable umbrella (broken)
Preference _concoctionDatabaseRefreshes changed from 30 to 31
Requests complete.

---

// 3. okay, now try getting rid of our only 1-handed ranged option

> closet put disco ball

Placing items into closet...
Preference _concoctionDatabaseRefreshes changed from 31 to 32
Requests complete.

Maximizer: 5item,meat,0.5initiative,0.1da 1000max,dr,0.5all res,1.5mainstat,-fumble,mox,0.4hp,0.2mp 1000max,3mp regen,0.25spell damage,1.75spell damage percent,2familiar weight,5familiar exp,10exp,5Mysticality experience percent,+200bonus spring shoes,+200bonus June cleaver,+200bonus designer sweatpants,2 dump
Maximizing...
Outfits [Bounty-Hunting Rig, Hateful Habiliment, Eldritch Equipage]
SLOT HAT
[seal-skull helmet (2,353), ravioli hat (2,353), Hollandaise helmet (2,353), disco mask (2,354), mariachi hat (2,354), helmet turtle (2,354), coconut shell (2,357), Apriling band helmet (2,426)]
[Apriling band helmet]
SLOT WEAPON
[(none) (1,879), toy accordion (1,879)]
[toy accordion]
SLOT OFFHAND
[hobo code binder (1,879), stuffed spooky gravy fairy (1,879), stuffed astral badger (1,879), stuffed MagiMechTech MicroMechaMech (1,879), stuffed snowy owl (1,879), (none) (1,879), magical ice cubes (1,879), Roman Candelabra (1,927), unbreakable umbrella (broken) (2,059), august scepter (2,059)]
[august scepter]
SLOT CONTAINER
[bat wings (2,426)]
[bat wings]
SLOT SHIRT
[Jurassic Parka (kachungasaur mode) (2,426)]
[Jurassic Parka (kachungasaur mode)]
SLOT PANTS
[old sweatpants (2,183), tearaway pants (2,261), designer sweatpants (2,426)]
[designer sweatpants]
SLOT ACCESSORY1
[Everfull Dart Holster (2,330), cursed monkey's paw (2,349), astral mask (2,406), Cincho de Mayo (2,426), combat lover's locket (2,457), spring shoes (2,556)]
[spring shoes, combat lover's locket, Cincho de Mayo]
SLOT ACCESSORY2
[(none) (1,879), seal-clubbing club (1,879), turtle totem (1,879), pasta spoon (1,879), saucepan (1,879), little paper umbrella (1,880), candy cane sword cane (1,915), June cleaver (2,100)]
[June cleaver]
SLOT STICKER3
[(none) (1,879), seal-clubbing club (1,879), turtle totem (1,879), pasta spoon (1,879), saucepan (1,879), little paper umbrella (1,880), candy cane sword cane (1,915), June cleaver (2,100)]
[June cleaver, candy cane sword cane]
24 combinations checked, best score 2,426.07
Preference commandBufferGCLI changed from git update#garbo ascend#CONSUME ALL#autoscend#garbo ascend#familiar stooper; cast ode; drink stillsuit distillate#CONSUME NIGHTCAP VALUE 4000#garbo ascend#acquire calzone of legend; acquire deep dish of legend; acquire pizza of legend; acquire non-euclidean angle; acquire abstraction: category; breakfast#PVP_MAB#autoscend#equip#help closet#closet put toy accordion#closet take toy accordion#stash put unbreakable umbrella#stash take unbreakable embrella#closet put unbreakable umbrella#closet take unbreakable umbrella#closet put disco ball to garbo ascend#CONSUME ALL#autoscend#garbo ascend#familiar stooper; cast ode; drink stillsuit distillate#CONSUME NIGHTCAP VALUE 4000#garbo ascend#acquire calzone of legend; acquire deep dish of legend; acquire pizza of legend; acquire non-euclidean angle; acquire abstraction: category; breakfast#PVP_MAB#autoscend#equip#help closet#closet put toy accordion#closet take toy accordion#stash put unbreakable umbrella#stash take unbreakable embrella#closet put unbreakable umbrella#closet take unbreakable umbrella#closet put disco ball#closet take disco ball

> closet take disco ball

Removing items from closet...
You acquire an item: disco ball
Preference _concoctionDatabaseRefreshes changed from 32 to 33
Requests complete.

---

// 4. no equipment changes, but test with removing "initiative" from the maximizer string. still doesn't try to equip a weapon

Maximizer: 5item,meat,0.1da 1000max,dr,0.5all res,1.5mainstat,-fumble,mox,0.4hp,0.2mp 1000max,3mp regen,0.25spell damage,1.75spell damage percent,2familiar weight,5familiar exp,10exp,5Mysticality experience percent,+200bonus spring shoes,+200bonus June cleaver,+200bonus designer sweatpants,2 dump
Maximizing...
Outfits [Eldritch Equipage, Bounty-Hunting Rig, Hateful Habiliment]
SLOT HAT
[seal-skull helmet (2,228), ravioli hat (2,228), Hollandaise helmet (2,228), disco mask (2,229), mariachi hat (2,229), helmet turtle (2,229), coconut shell (2,232), Apriling band helmet (2,301)]
[Apriling band helmet]
SLOT WEAPON
[(none) (1,769), toy accordion (1,769)]
[toy accordion]
SLOT OFFHAND
[hobo code binder (1,769), stuffed spooky gravy fairy (1,769), stuffed astral badger (1,769), stuffed MagiMechTech MicroMechaMech (1,769), stuffed snowy owl (1,769), (none) (1,769), magical ice cubes (1,769), Roman Candelabra (1,817), unbreakable umbrella (broken) (1,936), august scepter (1,949)]
[august scepter]
SLOT CONTAINER
[bat wings (2,301)]
[bat wings]
SLOT SHIRT
[Jurassic Parka (kachungasaur mode) (2,301)]
[Jurassic Parka (kachungasaur mode)]
SLOT PANTS
[old sweatpants (2,058), tearaway pants (2,111), designer sweatpants (2,301)]
[designer sweatpants]
SLOT ACCESSORY1
[Everfull Dart Holster (2,180), cursed monkey's paw (2,224), astral mask (2,281), Cincho de Mayo (2,301), combat lover's locket (2,332), spring shoes (2,381)]
[spring shoes, combat lover's locket, Cincho de Mayo]
SLOT ACCESSORY2
[(none) (1,769), seal-clubbing club (1,769), turtle totem (1,769), pasta spoon (1,769), saucepan (1,769), little paper umbrella (1,770), candy cane sword cane (1,805), June cleaver (1,990)]
[June cleaver]
SLOT ACCESSORY3
[(none) (1,769), disco ball (1,769)]
[disco ball]
SLOT STICKER3
[(none) (1,769), seal-clubbing club (1,769), turtle totem (1,769), pasta spoon (1,769), saucepan (1,769), disco ball (1,769), little paper umbrella (1,770), candy cane sword cane (1,805), June cleaver (1,990)]
[June cleaver, candy cane sword cane]
24 combinations checked, best score 2,301.07

---
 
FWIW, I'm also having trouble writing a test that exposes this issue. Here's as far as I got in case someone else has a flash of inspiration:

(in MaximizerTest)
Code:
@Test
  public void equipsWeaponsOverUnarmed() {
    final var cleanups = new Cleanups(
      // Character specific
      withClass(AscensionClass.PASTAMANCER),
      withHardcore(),
      withPath(Path.AVANT_GUARD),
      withSign(ZodiacSign.OPOSSUM),
      withInteractivity(false),
      withNoEffects(),
      withStats(1, 3, 2),
      // Equipped items
      withEquipped(Slot.HAT, "Apriling band helmet"),
      withUnequipped(Slot.WEAPON),
      withUnequipped(Slot.OFFHAND),
      withEquipped(Slot.SHIRT, "Jurassic Parka"),
      withProperty("parkaMode", "kachungasaur"),
      withEquipped(Slot.PANTS, "designer sweapants"),
      withEquipped(Slot.CONTAINER, "bat wings"),
      withEquipped(Slot.ACCESSORY1, "Cincho de Mayo"),
      withEquipped(Slot.ACCESSORY2, "combat lover's locket"),
      withEquipped(Slot.ACCESSORY3, "spring shoes"),
      // Items in inventory
      withEquippableItem("astral mask"),
      withEquippableItem("august scepter"),
      withEquippableItem("candy cane sword cane"),
      withEquippableItem("coconut shell"),
      withEquippableItem("cursed monkey's paw"),
      withEquippableItem("disco ball"),
      withEquippableItem("disco mask"),
      withEquippableItem("Everfull Dart Holster"),
      withEquippableItem("fancy opera glasses"),
      withEquippableItem("helmet turtle"),
      withEquippableItem("Hollandaise helmet"),
      withEquippableItem("June cleaver"),
      withEquippableItem("little paper umbrella"),
      withEquippableItem("magical ice cubes"),
      withEquippableItem("mariachi hat"),
      withEquippableItem("old sweatpants"),
      withEquippableItem("pasta spoon"),
      withEquippableItem("ravioli hat"),
      withEquippableItem("Roman Candelabra"),
      withEquippableItem("saucepan"),
      withEquippableItem("seal-clubbing club"),
      withEquippableItem("seal-skull helmet"),
      withEquippableItem("stolen accordion"),
      withEquippableItem("stuffed astral badger"),
      withEquippableItem("stuffed MagiMechTech MicroMechaMech"),
      withEquippableItem("stuffed snowy owl"),
      withEquippableItem("stuffed spooky gravy fairy"),
      withEquippableItem("tearaway pants"),
      withEquippableItem("tiny stillsuit"),
      withEquippableItem("toy accordion"),
      withEquippableItem("turtle totem"),
      withEquippableItem("unbrekable umbrella"),
      withProperty("umbrellaState", "broken"),
      // Focused skills
      withSkill("Double-Fisted Skull Smashing"),
      withSkill("Kung Fu Hustler")
    );
    try (cleanups) {
      assertTrue(maximize("5item,meat,0.5initiative,0.1da 1000max,dr,0.5all res,1.5mainstat,-fumble,mox,0.4hp,0.2mp 1000max,3mp regen,0.25spell damage,1.75spell damage percent,2familiar weight,5familiar exp,10exp,5Mysticality experience percent,+200bonus spring shoes,+200bonus June cleaver,+200bonus designer sweatpants"));
      System.out.println(getBoosts());
    }
  }

And with output:
Code:
MaximizerTest > equipsWeaponsOverUnarmed() STANDARD_OUT
    [<html><font color=gray>keep hat: Apriling band helmet</font></html>, equip weapon June cleaver (+223), equip off-hand august scepter (+179), <html><font color=gray>keep back: bat wings</font></html>, unequip shirt (Jurassic Parka (kachungasaur mode), -69), equip pants tearaway pants (+70), <html><font color=gray>keep acc1: Cincho de Mayo</font></html>, <html><font color=gray>keep acc2: combat lover's locket</font></html>, <html><font color=gray>keep acc3: spring shoes</font></html>, mcd 11 (+20), friars familiar (+10), monorail buff (+2), fail & aprilband effect drop (+0), mayam resonance memories of cheesier age (+0), friars food (+0), friars booze (+0)]
 
Last edited:
* Looking for the threshold, the maximizer will first start suggesting equipping the June cleaver (& offhand) at +346 bonus
This is the most useful (and confusing) thing I've seen yet.

That means the problem isn't in the scoring, but in the speculation, where it decides to not use the scoring if the score is low enough (?)

Can you try with "-tie" (to avoid using the tiebreaker) and also try just deleting parts of the maximization string until we get down to a simple one which has this crossover bonus behaviour?

Also nice to see a case where this lasted over a rollover: that proves it's not some unique behaviour that only occurs at the start of an ascension.

Edit: and looking at the screenshot, it ranks both the weapon and the offhand as strongly negative compared with nothing! But that is the opposite of the scoring dump, where it ranks them higher.

Why could this be?
 
Last edited:
Good idea, Ryo. Here's the pared down maximizer string with "-tie" and only the bits that keep me unequipped: "5item,10exp,+200bonus June cleaver,-tie,2 dump"

* Maximizer output with the same +200bonus June cleaver
Code:
Maximizer: 5item,10exp,+200bonus June cleaver,-tie,2 dump
Maximizing...
Outfits    [Eldritch Equipage, Bounty-Hunting Rig, BRICKOfig Outfit, Crimbo Duds,    Furry Suit, Bow Tux]
SLOT HAT
[helmet turtle (1,284), ravioli hat    (1,284), disco mask (1,284), coconut shell (1,284), seal-skull helmet    (1,284), mariachi hat (1,284), Hollandaise helmet (1,284), Apriling band    helmet (1,284)]
[Apriling band helmet]
SLOT WEAPON
[toy accordion    (894), (none) (894)]
[(none)]
SLOT OFFHAND
[hobo code binder    (894), magical ice cubes (894), stuffed spooky gravy fairy (894), stuffed    astral badger (894), stuffed MagiMechTech MicroMechaMech (894), stuffed    snowy owl (894), august scepter (894), Roman Candelabra (894), (none)    (894), unbreakable umbrella (broken) (1,019)]
[unbreakable umbrella    (broken)]
SLOT CONTAINER
[bat wings (1,284)]
[bat wings]
SLOT    SHIRT
[Jurassic Parka (kachungasaur mode) (1,293)]
[Jurassic Parka    (kachungasaur mode)]
SLOT PANTS
[old sweatpants (1,284), tearaway    pants (1,284), designer sweatpants (1,284)]
[designer sweatpants]
SLOT    ACCESSORY1
[spring shoes (1,209), cursed monkey's paw (1,209), Everfull    Dart Holster (1,209), Cincho de Mayo (1,284), astral mask (1,309), combat    lover's locket (1,334)]
[combat lover's locket, astral mask,    Cincho de Mayo, spring shoes]
SLOT ACCESSORY2
[seal-clubbing club    (894), turtle totem (894), pasta spoon (894), saucepan (894), little paper    umbrella (894), candy cane sword cane (894), (none) (894), June cleaver    (1,094)]
[June cleaver]
SLOT ACCESSORY3
[disco ball (894), (none)    (894)]
[(none)]
SLOT STICKER3
[seal-clubbing club (894), turtle    totem (894), pasta spoon (894), saucepan (894), disco ball (894), little    paper umbrella (894), candy cane sword cane (894), (none) (894), June    cleaver (1,094)]
[June cleaver, (none), candy cane sword cane, little    paper umbrella, disco ball, saucepan, pasta spoon, turtle totem,    seal-clubbing club]
168 combinations checked, best score 1,393.20

* Output with new threshold value of +269 bonus June cleaver
Code:
Maximizer: 5item,10exp,+269bonus June cleaver,-tie,2 dump
Maximizing...
Outfits    [Eldritch Equipage, Bounty-Hunting Rig, BRICKOfig Outfit, Crimbo Duds,    Furry Suit, Bow Tux]
SLOT HAT
[helmet turtle (1,284), ravioli hat    (1,284), disco mask (1,284), coconut shell (1,284), seal-skull helmet    (1,284), mariachi hat (1,284), Hollandaise helmet (1,284), Apriling band    helmet (1,284)]
[Apriling band helmet]
SLOT WEAPON
[toy accordion    (894), (none) (894)]
[(none)]
SLOT OFFHAND
[hobo code binder    (894), magical ice cubes (894), stuffed spooky gravy fairy (894), stuffed    astral badger (894), stuffed MagiMechTech MicroMechaMech (894), stuffed    snowy owl (894), august scepter (894), Roman Candelabra (894), (none)    (894), unbreakable umbrella (broken) (1,019)]
[unbreakable umbrella    (broken)]
SLOT CONTAINER
[bat wings (1,284)]
[bat wings]
SLOT    SHIRT
[Jurassic Parka (kachungasaur mode) (1,293)]
[Jurassic Parka    (kachungasaur mode)]
SLOT PANTS
[old sweatpants (1,284), tearaway    pants (1,284), designer sweatpants (1,284)]
[designer sweatpants]
SLOT    ACCESSORY1
[spring shoes (1,209), cursed monkey's paw (1,209), Everfull    Dart Holster (1,209), Cincho de Mayo (1,284), astral mask (1,309), combat    lover's locket (1,334)]
[combat lover's locket, astral mask, Cincho de    Mayo, spring shoes]
SLOT ACCESSORY2
[seal-clubbing club (894),    turtle totem (894), pasta spoon (894), saucepan (894), little paper    umbrella (894), candy cane sword cane (894), (none) (894), June cleaver    (1,163)]
[June cleaver]
SLOT ACCESSORY3
[disco ball (894), (none)    (894)]
[(none)]
SLOT STICKER3
[seal-clubbing club (894), turtle    totem (894), pasta spoon (894), saucepan (894), disco ball (894), little    paper umbrella (894), candy cane sword cane (894), (none) (894), June    cleaver (1,163)]
[June cleaver, (none), candy cane sword cane, little    paper umbrella, disco ball, saucepan, pasta spoon, turtle totem,    seal-clubbing club]
168 combinations checked, best score 1,393.76
 
See https://github.com/kolmafia/kolmafia/pull/2471

That is a passing test. I'd appreciate other eyeballs on it. It may be that the test is not complete or accurate because while the correct requests are emitted when run in a live setting the commands fail and this does not capture that. There might also be some piece of setup I have missed. The difference in scores between the test and the live runs suggests the test is missing something.

Earlier versions of this failed because the umbrella state was not predefined and the test failed because the umbrella had to be "folded". Foldable items might also be a factor in not equipping a weapon.
 
Back
Top