Feature Maximizer difficulty with negatives and the max/min keywords.

I'm not quite sure whether to characterize this as a bug or a feature.

There's a hard cap in game about combat rate modifiers--anything past +/- 35% doesn't do anything. The maximizer currently ignores this, for reasons that make sense: there are times when we want to go past this hard cap (Community Service, or certain scenarios where you're figuring out what buffs you can afford to stop maintaining), and it should be possible to recreate desired behavior by using the max and min keywords.

Combat rate is a bit of an odd modifier--there are times when we want it to take a large positive value and times when we want it to take a large negative value. When we want to max out combat rate, we can type "combat rate 35 max" and have a great time. The maximizer will occasionally bring you to values over 35, but reaching those higher values doesn't increase the maximizer score, so it'll only happen if you have so many buffs or such large +combat bonuses on gear that you'd do so by accident, or incidentally while trying to maximize something else. But when we type "- combat rate -35 min", something undesirable (for this situation) happens: the "-35 min" acts as a boolean modifier, which means failing to meet that expectation results in a failure. See attached for an example.

I've tried a few other strings I expected could yield the results I'm looking for (e.g., "- combat rate -35 max") and none yielded my desired behavior.

There may very well be a way to do this that I've missed. I'd love to discover this.
1735263479177.png
 
There's a hard cap in game about combat rate modifiers--anything past +/- 35% doesn't do anything.
When was this introduced? I don't remember this cap existing in the distant past, and I don't see any references to it in announcements / trivial updates or on the wiki.
 
When was this introduced? I don't remember this cap existing in the distant past, and I don't see any references to it in announcements / trivial updates or on the wiki.
I don't know when it was introduced. It does appear on this page of the wiki:
If modifiers are used to adjust combat frequency more than 25% in either direction, additional modifiers contribute only +1% for every +5%. Six effects that provide -5% combat, for example, will provide a total of -26%, not -30%. Additionally, combat frequency manipulation is hard capped at 35%. Underwater-only effects, however, are applied after these diminishing returns.
(emphasis mine)
 
Hm. Looks like the text was added on Feb 25 (https://kol.coldfront.net/thekolwiki/index.php?title=Combat_Frequency&diff=710087&oldid=706197) but I cannot find any references to a change happening around that time.

As for the original request, you're entirely correct that min / max aren't really usable with negative maximization targets. (The maximizer help button hints at this being the case.) It might be more intuitive to always operate on the score (i.e. weight * value) since the maximization always tries to maximize the resulting score (where bigger is better). However, that would potentially break many existing uses.

Instead, I might suggest adding new keywords "scoremin" and "scoremax", then internally translate min / max into those new concepts so we don't have to maintain even more keywords, then (optionally) also print out that min / max are deprecated and you should consider using the new keywords instead.
 
Hm. Looks like the text was added on Feb 25 (https://kol.coldfront.net/thekolwiki/index.php?title=Combat_Frequency&diff=710087&oldid=706197) but I cannot find any references to a change happening around that time.

As for the original request, you're entirely correct that min / max aren't really usable with negative maximization targets. (The maximizer help button hints at this being the case.) It might be more intuitive to always operate on the score (i.e. weight * value) since the maximization always tries to maximize the resulting score (where bigger is better). However, that would potentially break many existing uses.

Instead, I might suggest adding new keywords "scoremin" and "scoremax", then internally translate min / max into those new concepts so we don't have to maintain even more keywords, then (optionally) also print out that min / max are deprecated and you should consider using the new keywords instead.

The change adding a hard cap to -combat/+combat occurred silently on April 15, 2021, following discussions in /dev about e.g. people hitting -85% combat and getting infinite skippable NCs in the billiards room, which would let you get arbitrarily many sausage goblins gated only by server hits and luck.
 
The change adding a hard cap to -combat/+combat occurred silently on April 15, 2021, following discussions in /dev about e.g. people hitting -85% combat and getting infinite skippable NCs in the billiards room, which would let you get arbitrarily many sausage goblins gated only by server hits and luck.
IMO, doesn't really seem reasonable as a primary motivator if turns between sausage goblin encounters scales as encounters^3 -- even with a million server hits per day (~12/s), that's only like 60 goblins (based on quick calculations using the wiki formula), compared to getting your first 6 in about 35 turns. And I can't imagine that buffing up to -85% combat is cost-effective as a daily ritual for a marginal 15 or so extra adventures.

That said, it would make sense as a secondary motivator, given that I'm pretty sure I've had conversations with you about hitting -90% combat for Nuge farming via skippable noncombats. Or for that matter, 17-ball farming, although that nominally has less value.

I'm a little surprised that skippable NCs decrement the sausage goblin timer, though. I was under the impression that delay() didn't advance in that scenario, although my knowledge of how these mechanics work is rusty at best and in the more likely scenario, a decade behind the times.
 
I'm a little surprised that skippable NCs decrement the sausage goblin timer, though. I was under the impression that delay() didn't advance in that scenario, although my knowledge of how these mechanics work is rusty at best and in the more likely scenario, a decade behind the times.
It doesn't need to advance the timer, it just needs to give you another roll at the goblin that turn.
 
IMO, doesn't really seem reasonable as a primary motivator if turns between sausage goblin encounters scales as encounters^3 -- even with a million server hits per day (~12/s), that's only like 60 goblins (based on quick calculations using the wiki formula), compared to getting your first 6 in about 35 turns. And I can't imagine that buffing up to -85% combat is cost-effective as a daily ritual for a marginal 15 or so extra adventures.

That said, it would make sense as a secondary motivator, given that I'm pretty sure I've had conversations with you about hitting -90% combat for Nuge farming via skippable noncombats. Or for that matter, 17-ball farming, although that nominally has less value.

I'm a little surprised that skippable NCs decrement the sausage goblin timer, though. I was under the impression that delay() didn't advance in that scenario, although my knowledge of how these mechanics work is rusty at best and in the more likely scenario, a decade behind the times.
Goblin timer doesn't decrement, but goblins have a ramping chance, not a strict timer, and can always be found.

Ultra rare farming was also part of the discussion. That doesn't work any more anyway for other reasons (more and older silent changes), but it did come up in /dev that day. There was another concern, too, and hardcapping it appealed to TPTB as a permanent fix.
 
`scoremin` and `scoremax` could be a good solution to this problem, but users will need to start multiplying their preferred modifier caps by whatever score multiplier they use.
e.g. `-100 combat rate 3500 scoremax`.

An alternative that might be worth considering is to add a `negative` keyword, that inverts the score multiplier and swaps `min` and `max` to work the way they do for regular modifiers.
e.g. `100 negative combat rate 35 max` or even `100 -combat rate 35 max`

Off the top of my head, either solution would also be useful for `ml` and `items` (when trying to get to -100% item drop for various purposes), but probably for many other occasional uses.
 
Back
Top