My personal Meat farming script

In the realm of the trivial...

I finished a TCRS run. Broke the Prism. Fought the Skulldozer in my garden. Ran VMF to a normal exit. Filled my spleen and ran VMF again. VMF said
Your Bone Garden has a Skulldozer in it.
Gear up and fight it!
Let it grow some more.

This is not true. Don't know whether it is a logic hiccup, a cached data issue or mafia forgot to reset something. No harm, no foul so nothing more than a FYI.
 
When the script is trying to get a lil pirate outfit it keeps going to the obligatory pirate cove even if I have Dinsey available. The script knows that I have Dinsey so why doesn't it go to the pirate barge where there are no non-combats?
Revision 183 goes to the garbage barges to get the pirate outfit if you are farming barf mountain.
 
I am getting this after ever turn in 19532

Code:
Round 5: You win the fight!You're making steady progress, but you're            still pretty close to the back of the line.A love grub shyly            approaches you and hands you some extra Meat.Pretentious Catequil            surveys the scene from your back, and gains 1 Experience.Captain            Honathan distracts your opponent with his left hand while punching            the Meat out of their pockets with the other. (+30% Meat Drops)You            look underneath ÊYANE AWÏUC's cushions, and find some loose            meat!Honathan berates your fallen adversary for not tipping, and            checks their pockets.You gain 4286 MeatHonathan does an elaborate            bottle-juggling routine.You notice something valuable hidden in the            bottom of a filthy rollercoaster car.You acquire an item: old coin            purse"Perhaps You Would Enjoy A Drink Relevant To The Current            Circumstances," Honathan says, and gives you a elemental            sugarcube.You acquire an item: elemental sugarcubeHonathan passes            you a bowl of peanuts. Except instead of peanuts, it's candy.You            acquire an item: pile of candyYou gain 13 Beefiness.You gain 11            Wizardliness.You gain 30 Cheek.You catch a line from the song            playing on your SongBoom™ BoomBox:"And you're never coming round"You            take a sip of your Inky rawhide Latte with a shake of            cinnamon.Adventure Again (Barf Mountain)Go back to            Dinseylandfillparent.charpane.location.href="charpane.php";
function            updateParseItem(iid, field, info) {
var tbl = $('#ic'+iid);
var            data = parseItem(tbl);
if (!data) return;
data[field] = info;
var            out = [];
for (i in data) {
if (!data.hasOwnProperty(i))            continue;
out.push(i+'='+data[i]);
}
tbl.attr('rel',            out.join('&'));
}
function parseItem(tbl) {
tbl =            $(tbl);
var rel = tbl.attr('rel');
var data = {};
if (!rel)            return data;
var parts = rel.split('&');
for (i in parts) {
if            (!parts.hasOwnProperty(i)) continue;
var kv = parts[i].split('=');
tbl.data(kv[0],            kv[1]);
data[kv[0]] = kv[1];
}
return data;
}



var            tp = top;
function pop_ircm_contents(i, some) {
var contents =            '',
shown = 0,
da = ' [some] [URL="https://kolmafia.us/"][all]            ',
dc = '[/URL]                         
            return;
}

if (hoverCaller) {
float_results(hoverCaller,              out);
if (afterFunc) { afterFunc(out); }
return;
}
$(tp.mainpane.document).find("#effdiv").remove();              if(!window.dontscroll || (window.dontscroll && dontscroll==0)) {              window.scroll(0,0);}
var $eff =              $(tp.mainpane.document).find('#effdiv');
if ($eff.length == 0) {
var              d = tp.mainpane.document.createElement('DIV');
d.id = 'effdiv';
var              b = tp.mainpane.document.body;
if ($('#content_').length > 0) {
b              = $('#content_ div:first')[0];
}
b.insertBefore(d,              b.firstChild);
$eff = $(d);
}
$eff.find('a[name="effdivtop"]').remove().end()
.prepend('              ' + out + ' ').css('display','block');
if (!window.dontscroll              || (window.dontscroll && dontscroll==0)) {
tp.mainpane.document.location              = tp.mainpane.document.location + "#effdivtop";
}
if              (afterFunc) { afterFunc(out); }
}
});
}           
         
       
     
                                Round 5: You win the fight!You're making steady progress, but you're            still pretty close to the back of the line.A love grub shyly            approaches you and hands you some extra Meat.Pretentious Catequil            surveys the scene from your back, and gains 1 Experience.Captain            Honathan distracts your opponent with his left hand while punching            the Meat out of their pockets with the other. (+30% Meat Drops)You            look underneath ÊYANE AWÏUC's cushions, and find some loose            meat!Honathan berates your fallen adversary for not tipping, and            checks their pockets.You gain 4286 MeatHonathan does an elaborate            bottle-juggling routine.You notice something valuable hidden in the            bottom of a filthy rollercoaster car.You acquire an item: old coin            purse"Perhaps You Would Enjoy A Drink Relevant To The Current            Circumstances," Honathan says, and gives you a elemental            sugarcube.You acquire an item: elemental sugarcubeHonathan passes            you a bowl of peanuts. Except instead of peanuts, it's candy.You            acquire an item: pile of candyYou gain 13 Beefiness.You gain 11            Wizardliness.You gain 30 Cheek.You catch a line from the song            playing on your SongBoom™ BoomBox:"And you're never coming round"You            take a sip of your Inky rawhide Latte with a shake of            cinnamon.Adventure Again (Barf Mountain)Go back to            Dinseylandfillparent.charpane.location.href="charpane.php";
function            updateParseItem(iid, field, info) {
var tbl = $('#ic'+iid);
var            data = parseItem(tbl);
if (!data) return;
data[field] = info;
var            out = [];
for (i in data) {
if (!data.hasOwnProperty(i))            continue;
out.push(i+'='+data[i]);
}
tbl.attr('rel',            out.join('&'));
}
function parseItem(tbl) {
tbl =            $(tbl);
var rel = tbl.attr('rel');
var data = {};
if (!rel)            return data;
var parts = rel.split('&');
for (i in parts) {
if            (!parts.hasOwnProperty(i)) continue;
var kv = parts[i].split('=');
tbl.data(kv[0],            kv[1]);
data[kv[0]] = kv[1];
}
return data;
}



var            tp = top;
function pop_ircm_contents(i, some) {
var contents =            '',
shown = 0,
da = ' [some] [URL="https://kolmafia.us/"][all]            ',
dc = '[/URL]                         
            return;
}

if (hoverCaller) {
float_results(hoverCaller,              out);
if (afterFunc) { afterFunc(out); }
return;
}
$(tp.mainpane.document).find("#effdiv").remove();              if(!window.dontscroll || (window.dontscroll && dontscroll==0)) {              window.scroll(0,0);}
var $eff =              $(tp.mainpane.document).find('#effdiv');
if ($eff.length == 0) {
var              d = tp.mainpane.document.createElement('DIV');
d.id = 'effdiv';
var              b = tp.mainpane.document.body;
if ($('#content_').length > 0) {
b              = $('#content_ div:first')[0];
}
b.insertBefore(d,              b.firstChild);
$eff = $(d);
}
$eff.find('a[name="effdivtop"]').remove().end()
.prepend('              ' + out + ' ').css('display','block');
if (!window.dontscroll              || (window.dontscroll && dontscroll==0)) {
tp.mainpane.document.location              = tp.mainpane.document.location + "#effdivtop";
}
if              (afterFunc) { afterFunc(out); }
}
});
}
 
Last edited by a moderator:
Hey so I've been getting a problem lately where it no longer feeds the robortender drinks. It will acquire them all, but doesn't actually give him them. Any thoughts on how to fix that?
 
Would you be willing to explore the addition of using the Kremlin's Greatest Briefcase buffs to VMF? If the meat buff is known then it's, potentially, an easy source of +meat.
 
Finished KoE run. Ran a couple of scripts but did nothing that burned adventures. Tried to run VMF and it failed, looking for grapefruits. Upon investigation that was the expected behavior because the island was unavailable and thus the Hippy Store was unavailable.

Arguably a mafia bug since marking the Island unavailable could have been done by mafia when the King was freed, but reporting here because it could be an opportunity to make VMF even more robust. Thanks.
 
Revision 203 will call BeachComber (if installed) to walk on the beach.

VMF.BeachCombTurns is a number.
If < 0, do not comb the beach
If = 0 (the default), use remaining free walks only
If > 0, spend that many non-free turns combing the beach.

This requires the latest verion of BeachComber (version 202, released just before this) to properly track non-free turns spent today.
 
Hey so I've been getting a problem lately where it no longer feeds the robortender drinks. It will acquire them all, but doesn't actually give him them. Any thoughts on how to fix that?
Well....

Code:
[color=green]> get VMF.MeatFamiliar[/color]

Robortender

[color=green]> get VMF.RoboDrinks[/color]

drive-by shooting

[color=green]> ash import <VeracityMeatFarm.ash>; validate_configuration()[/color]

Validating configuration.
Pulling items from storage...
All is well!
Returned: void

[color=green]> ash import <VeracityMeatFarm.ash>; lubricate_robortender()[/color]

Lubricating Robortender with 'drive-by shooting' to gain effect: +1.0 Leprechaun
Boozing Robortender with 1 drive-by shooting...
Finished using 1 drive-by shooting.
Returned: void

[color=green]> get _roboDrinks[/color]

drive-by shooting
The validate_configuration() is what acquires the drinks, the lubricate_robortender() is what feeds him the drinks.
It would not have acquired the drinks if my settings were not as shown.
It would not have lubricated him, ditto.

The "_roboDrinks" setting is the drinks you used today. The script will not feed him drinks if he's already had that - or a better - drink today.

What does

get _roboDrinks

tell you?
 
Would you be willing to explore the addition of using the Kremlin's Greatest Briefcase buffs to VMF? If the meat buff is known then it's, potentially, an easy source of +meat.
I have the following IOTMs on my "to do" list:

// Clan fortune teller
// Boxing Daycare
// KGB Briefcase buffs

I expect I will get to them, by and by.
 
Finished KoE run. Ran a couple of scripts but did nothing that burned adventures. Tried to run VMF and it failed, looking for grapefruits. Upon investigation that was the expected behavior because the island was unavailable and thus the Hippy Store was unavailable.

Arguably a mafia bug since marking the Island unavailable could have been done by mafia when the King was freed, but reporting here because it could be an opportunity to make VMF even more robust. Thanks.
I don't think you can "mark the Island unavailable". Instead, KoLCharacter.mysteriousIslandAccessible() will "mark it available" based on the presence of certain items. Acquisition of those items, finishing certain quests, seeing the island on the main map, etc. will all similarly "set it available".

The setting is "lastIslandUnlock".

NPCStoreDatabase.canPurchase() will return false for "hippy" if !KoLCharacter.mysteriousIslandAccessible().

How did it "fail, looking for grapefruits"? I assume it was trying to retrieve_item() on a drink which could be created using grapefruits? What does your session log say?
 
In the log VMF is started, does it consumption price checking

drinks 6 perfect cosmopolitan
and then
...
You lose some of an effect: Ode to Booze (-3)
outfit Filthy Hippy Disguise

buy 1 grapefruit for 66 each from Hippy Store (Fratboy)
> Net income = -45,608 Meat in 0 turns. Meat/Adventure = -45,608
> Cumulative income = 133,899,790 Meat in 65,617 turns. Meat/Adventure = 2,040

This tells me less than I remembered since I am pretty sure something in the gCLI clued me into to the problem being with the Hippy Store.

I should note that I cannot recall seeing this, or something like it, again. It may have been because this was a HC KoE run.
 
I don't recall seeing this behavior before but, today, the script did, or tried to do, many things at the end of the day that I normally see at the beginning: Snojo, Deep Machine Tunnels, Fighting copies of a FAXed monster, etc.. Unfortunately the number of turns available to do things like the Spacegate, Gingerbread City, etc.. weren't sufficient so it didn't go there.

I didn't see any errors in the session logs it just went right in to adventuring in Pirates of the Garbage Barge for all available turns. The script usually adventures in Barf Mountain.

I uploaded a copy of the session log to Pastebin if it helps.

Any ideas on how/why this might have happened?
 
Last edited:
OK, that's really weird.

It goes there to get the li'l pirate costume.
It got one and equipped it.
It then busted a ghost.
And then back to the Pirates of the Garbage Barges?

You seem to have a between battle script. I see this:

Code:
cast 1 Spirit of Peppermint
You acquire an intrinsic: Spirit of Peppermint
> Recommended Combat Rate: +0 (now: -10)
> Recommended Initiative: +0 (now: 75)
> Recommended Item Drop: +0 (now: 130)
> Recommended Monster Level: +635 (now: 76)
What is that?

I'll look at VMF. There is a loop to get the li'l pirate costume, since a wanderer could show up and you'll not get it first turn. If it busts a ghost in that loop, was it perhaps looking for the costume to be in inventory, but it was equipped?
 
That was surely it. Revision 205 will stop the loop if the costume is in inventory OR is equipped on the tot.

It also closets sand dollars after combing the beach. My farming outfit now includes a lucky gold ring and rumor has it that it will only give you sand dollars if you have some in inventory. I don't want more sand dollars. I want charter currency.
 
(Untested in the context of running the whole script, since I'm currently using the Robortender as my Meat farming familiar.)

I did do this, however:

Code:
ash import <VeracityMeatFarm.ash>; get_pirate_outfit()
and it did go to get the outfit, at least. No busted ghosts, so didn't really reproduce your situation.
 
Unfortunately, for those of us who drop down to the default food check but don't have charters or such things that make adventuring great rather than just good, the mall has currently priced all of the 3-size items out of profitability. Due to how the check works, it then tries to eat a null (-1). I've worked around this by putting a quick check to make sure that our 3-size food has actually returned an item before we eat it.
Code:
    if ( !calculate_optimal_consumables ) {
	// *** Strategy: eat acceptable 3-full foods until you have less
	// *** than 3 fullness available, then finish with acceptable
	// *** 1-fullness foods.
	int foods = full_remaining / 3;
	if ( foods > 0 ) {
	    item_set choices = $items[ super salad, beer basted brat, whole roasted chicken ];
	    item food = find_profitable_consumable( choices, 3, mpa ).it;
if (food.to_int() > 0) {
	    eat_food( foods, food );
	    current_full = my_fullness();
	    full_remaining = max_full - current_full;
}
	}
	foods = full_remaining / 1;
Beginning line was 5557, ending line was 5569. Additional lines lack indentation to make them more visible.
 
Back
Top