My personal Meat farming script

fronobulax

Developer
Staff member
Didn't stop unexpectedly for me with 313. Not sure where to even begin looking for a setting that this one character has that is "unusual".
 

Veracity

Developer
Staff member
313 worked fine for me with all my characters. I have no clue.

But 314 adds a my_adventures() > 0 check to the loop - although I still can see no way for it to fail.
 

Veracity

Developer
Staff member
Revision 315 will use a redwood rain stick for 20 turns of Item Drop +20 in the place we use other Item Drop thingies.
 

Veracity

Developer
Staff member
I'll look at those.

As well as the May Day contract; I don't see the value of not opening it every day and then suddenly opening a bunch of them. Perhaps I am wrong, in which case I can make it configurable.
 

Magus_Prime

Well-known member
The only reason that I can think of for saving up MayDay packages is that any packages opened on the same day have the same contents. So if you like one of the objects, after opening the first one, you can open more. The Space Blanket, which is worth 5,000 meat, is a candidate that comes to mind.
 

Veracity

Developer
Staff member
I’m trying to figure out how you’d simulate doing what you’d do manually.

Suppose I want to collect/sell Space Blankets.
Suppose I have 30 May Day packages.
Every day I get a new one and open it.
If it has a Space Blanket, I open the other 30.

And then, forever more, every day I get a new May Day package and open it. If it has a Space Blanket, well I have no more May Day packages.

And that’s how it works manually - or automated.

I suppose two options:
Boolean should I open May Day packages?
Item if I get this, open rest of May Day packages
 

Veracity

Developer
Staff member
This uses spleen for Sweet Synthesis, and DMT special choice, and Calculating the Universe.
It will use cost-effective adventure producing items.

If you didn't have those three uses, it used to not bother using said adventure producing spleen items.

As of revision 319, now it does.

(You should upgrade, regardless, since that revision also includes a change to vcon which gets around a current KoLmafia bug which doesn't tell scripts that drunki-bears, for example, use both fullness and inebriety. vcon already rejected multi-organ items, but now it explicitly rejects THOSE multi-organ items.)
 

Magus_Prime

Well-known member
Would you be willing to entertain a modification to VMF? Something along the lines of handing it an argument that would:
  • Eat, drink, and spleen using vcon
  • Run through everything else configured (Spacegate, Gingerbread City, Beachcombing, etc..) up to the point where VMF spends the remaining adventures in Barf Mountain
In other words: eat, drink, and be merry, do all the once/day stuff, and then exit so that adventures might be spent elsewhere. I realize that I can simply monitor the gCLI and stop the script when it hits Barf Mountain but thought that I'd ask.

Thinking of Crimbotown right now.
 
Last edited:

fronobulax

Developer
Staff member
Would you be willing to entertain a modification to VMF? Something along the lines of handing it an argument that would:
  • Eat, drink, and spleen using vcon
  • Run through everything else configured (Spacegate, Gingerbread City, Beachcombing, etc..) up to the point where VMF spends the remaining adventures in Barf Mountain
In other words: eat, drink, and be merry, do all the once/day stuff, and then exit so that adventures might be spent elsewhere. I realize that I can simply monitor the gCLI and stop the script when it hits Barf Mountain but thought that I'd ask.

Thinking of Crimbotown right now.

Great minds think alike.

A back burner project of mine has been to wrap vcon so that I can use it as an EatDrink alternative.

The "do everything else" actually is useful when coming out of ronin or the first turns in aftercore. I approximate the feature by running VMF last. I save it a few turns, save a fullness if it is getting blueberry muffins, make sure there is not a day pass (so it isn't used for a handful of turns) and run. I also run EatDrink before VMF in this case because I don't want my spleen used for meat drops.
 

Veracity

Developer
Staff member
Just woke up (late, I know) and Crimbotown is here? And it’s unlimited turns?

Sure, I’ll look onto this.

Perhaps i’ll see if I can add an optional argument.

- no arguments is “” -> run everything
- otherwise “x y z” -> parse it and see what to do.

That’d be a new ASH feature. Have to think about it.

Would not be the first time I adjusted KolMafia because my scripts needed it. ;)
 

Veracity

Developer
Staff member
I decided to not change KoLmafia itself to allow optional arguments for the main() function. For now.
Instead, r323 adds a new configuration variable:

Code:
// Whether or not to exit after doing all the prep work and "free" actions.
// If you want to farm Crimbo, say, set this to false.

boolean run_turns = define_property( "VMF.RunTurns", "boolean", "true" ).to_boolean();

Given that, you could do:

Code:
set VMF.RunTurns=false
VeracityMeatFarm
(does pre-adventuring stuff - consumption, free fights, etc.)
set VMF.RunTurns=true
(farm Crimbo, using some number of turns)
VeracityMeatFarm
(uses up remaining turns and does end-of-day activites)

After one day of doing that with all my characters, I decided that was too hard.
I kept the configuration variable and created a wrapper script to call VMF.

Code:
vmf false
(does pre-adventuring stuff - consumption, free fights, etc.)
(farm Crimbo, using some number of turns)
vmf true
(uses up remaining turns and does end-of-day activites)

This also handles several properties I do not want to deal with while farming outside of VMF:
- sweet synthesis (do not use spleen to boost Meat Drop. use spleen for extra turns)
- special familiars (don't get costumes for Tot. don't lubricate Robortender)

VMF uses vprops, so configuration properties need special handling.

- the properties do not exist if they are "default".
- Therefore, get_property("xxx") -> "" if either the property does not exist (is default) or is actually set to "" (may not be default).

I attach vmf.ash which sets/restores properties correctly.
Use or modify as desired.
 

Attachments

  • vmf.ash
    2 KB · Views: 9
I think to maximize space blanket acquisition, you would save up some # of mayday packages, then start opening 1 per day until you hit a space blanket, then open your whole stash. Assuming that you hit a space blanket 20% of the time, this would make you miss a space blanket only 4 times on average per cycle.

So if you stockpile 30 packages, then start trying to open them, you would get 31 space blankets every ~35 days. Much better than 1 per 5 days, opening them immediately.
 

fronobulax

Developer
Staff member
I just noticed that VMF used clip art but left the items in inventory. I thought VMF once sold the summoned items. Is my memory wrong or is there a configuration setting I can't figure out that changed?

Possible Feature Request that might not be the good idea I think it is.

Code:
if (am meat framing) && (if have at least 10 turns left) && (have autumn dollar in inventory)
then
   use autumn dollar
endif

My use case is that "am meat farming" means "running VMF and it has moved from the daily things to farming. I could do something with a BBS or an always in a mood but VMF could also do it. In my case if the dollar is in inventory then it can be used and if VMF does it then I don't have to figure out what "phase" VMF is in.
 

extynt

New member
hello, first to say I love this script
ma concern is about garden
i set before rollover rock garden , but forgot to manualy crop before garbo start, wich seems change to other garden,
so i lost crop , so
if regarden they apear back ( crop lost),
or
need to not forgot to crop before run
TYVM
 

Veracity

Developer
Staff member
Correct.

FWIW, this script will call my "Garden Harvester" script which does not (yet) support the Rock Garden.
THIS script does not - and never will - change your garden.
 
Top