Familiar Trainer

t4kato

New member
Hi everyone. I looked around and couldn't find a clear answer to this question, so I thought I'd ask:

KoLmafia's Familiar Trainer seems very effective for anyone who just wants to get their familiar to a certain level, no-questions-asked. This is great and all and works most of the time. But for someone who needs to be optimal, it doesn't give a whole lot of leeway.

Is there a reason the View Matchup option only gives the bare minimum information and doesn't go the extra (very small) step of delineating the probabilities of outcomes? Knowing what the chances are allows the player to juggle familiar weight effects to alter the outcomes. Also, it allows the player to pick something besides the 96% win scenario (in case it's more important to win 100% of the time over getting the most exp). This would be very nice for someone in Hardcore or with limited resources.

Now it's quite possible I'm overlooking something (some functionality or script) entirely (it wouldn't be the first time). Please tell.

Otherwise, would it be too much to ask to add the feature? I'll help with whatever programming knowledge I have! If it's a matter of the calculations being difficult (really?), I have them calculated here:

Code:
M = Your_familiar's_modified_weight - Their_familiar's_modified_weight

Result	Chance
M + 4	4%
M + 3	8%
M + 2	12%
M + 1	16%
M	20%
M - 1	16%
M - 2	12%
M - 3	8%
M - 4	4%

Result	Exp
-	0
0-5	5
6	4
7	3
8+	2

If it can't be done, I was planning to write a script to accomplish the same thing (with these calculations).
Thanks for your time.
 
Last edited:

t4kato

New member
I saw that while trying to find what I'm looking for. Looking through the code proved difficult, but it seems his script does (among other things) the exact same thing the Familiar Trainer already does, no? This piece of code seems to reinforce that notion:

Code:
cli_execute("train turns 1");

He's just calling the Familiar Trainer already built in.
 

Theraze

Active member
But the built in one will already shift equipment (if you have it) to optimize your training. Can't shift equipment if it's not there...
 

t4kato

New member
Hmm. Well that's good. That solves one of the problems. Well what if you couldn't afford to lose 4% of the time and would prefer to go the with the 100%-win scenario instead of the 96%-win scenario which is optimal for experience?

What I'm saying is, if it showed you these calculations, you'd have the freedom to suit any situation. As is, the trainer is a black box. You tell it to do something and you're not entirely sure how it does it. :p The only reason I'm asking for this is that it doesn't actually require anything to be added. The calculations are already there, just hidden for some reason. o_O

Take The Rye's Familiar Strengths chart. It puts all the information out there in just the right way. Unfortunately, The Rye's suffers from one critical flaw: the numbers have to be re-input daily, presumably manually? Usually by the time it's updated, it's already too late. A shame, really.
 

Theraze

Active member
I think the point is that the code is already optimal... if you want to go suboptimal and make a script that manually hits visit_url for everything, you're free to do that, but barring wanting to do things in a less useful way, either the relay browser or a non-optimal (except for getting familiar items below level 20, I suppose) script would be your best options...
 

fronobulax

Developer
Staff member
I think the point is that the code is already optimal...
Actually, I think there is a different definition of optimal. If I wanted every adventure to have a positive result then I might consider a 4% chance of failure unacceptable if the possibility of a 0% failure rate existed. I believe mafia is optimal in that the strategy minimizes the expected number of adventures required to meet the goal, but it probably is not optimal if the goal is to guarantee that no adventures are wasted by an arena loss. Now in the larger sense, I'm not sure how using the later strategy is optimal in a game sense but in a world where people still buy lottery tickets there are a lot of strategies that don't hold up to real analysis. So I see this as a request for mafia to display information it already has so that someone whose definition of "optimal" differs from mafia's can make "better" decisions.
 

Theraze

Active member
If all we're wanting is adding in the information that KoLmafia is already calculating, good enough. If we're actually going to start working based on fuzzier calculations, that's another... Why show the weight + 3 if you don't have a lead necklace?

My guess in my bleary morning state is that KoLmafia is smart enough not to check if +5 weight would help if you don't have the familiar item for it, and that it doesn't check +3 if you don't have the necklace. If it does check to see if it's beneficial first, and then checks for the item's existence... why do we care in the matchup if we don't have the item available to us?

But yes, displaying useful data that's already being collected? That makes sense. I suppose. :) I just never see myself caring to manually train weight like that... If I'm going to farm familiar items, I'll just find myself a 100% one and do that in groups of 10, since I'm going for the item as opposed to caring about the experience. Or... y'know... buy it and save myself the ~15 turns (has anyone spaded whether necklace and specific items are 50/50 split?) per specific familiar's item gained.

I suppose the next thing for t4kato to do is make a feature request for this to be displayed, on that board?
 

t4kato

New member
Yeah. I just mean adding calculations that are already there. Nothing new. My reasoning is the same as that of fronobulax. There are cases where the "optimal" training method isn't the one you want:

  • Sometimes you can't get 96% with your current weight (even with the equipment you currently own. What if you can, however, get the right equipment or skill to make it possible? Currently there's no way to know any of this. You won't know if your current weight is sub-optimal until after you've trained (and failed?).
  • What if you're under some sort of restriction (perhaps some sort of non-optimal hardcore?) where it'd more important to make sure you win 100% of the time? Say, to get that set of quadroculars for your He-Boulder?
  • Maybe you want to get a very specific result for who-knows-what reason.

Really, just look at The Rye's Familiar Strengths. The chart it gives for strengths and weaknesses looks a lot like KoLmafia's Familiar Trainer. But lo and behold, it also tells you the chances of each outcome. I'm just asking for the exact same thing. Shouldn't be too hard?

Should I post this under Feature Requests and link to this thread?
 
Top