phreddrickk
Member
freecandydotexe
is a script for trick-or-treating on Hallowe'en for fun and profit. It is a member of the libram ecosystem, is built on the grimoire framework, and borrows many of the regular expressions used from the aforementioned tricktreat.ash. It can be installed by giving your CLI the ol' git checkout loathers/freecandydotexe release
, and it can be run by typing freecandy
. There is an extensive-ish readme for it located here. Everything else in this post will be in the form of an FAQ.Long ago, I found myself frequently stopping and starting tricktreat.ash so that I could manually interpolate digitize wanderers, sausage goblins, and the like. This was pretty inconvenient! I decided to write a trick-or-treating script that I wouldn't have to stop and start to be optimal. That script, over time, evolved into freecandy.
freecandy will trick-or-treat for you, getting candy from either a user-specified outfit or one that it chooses by itself. It will dynamically construct outfits to fight hallowe'en combats with, as well as digitized monsters, sausage goblins, voter monsters, and just about everything else I could think of. It will send your Autumn-Aton to profitable zones, it will harvest your Cold Medicine Cabinet, rotate your Model Train Set, terminate when it fights the last of the nemesis quest wanderers, fill Pantsgiving fullness, switch in your trick-or-treating tot when relevant, lovingly place each of the aforementioned wanderers into a profitable zone, and do a bunch of other stuff if it is able to do so.
In exchange for being so thoroughly featured, it does take the user a bit out of the driver's seat. It will override (but then later reset, don't worry) a bunch of your settings, and because it is written in TypeScript it may be difficult for novice scripters to modify it to suit their own needs--you'll need to set up a dev environment, install a bunch of packages, and generally do a little bit of work.
freecandy will trick-or-treat for you, getting candy from either a user-specified outfit or one that it chooses by itself. It will dynamically construct outfits to fight hallowe'en combats with, as well as digitized monsters, sausage goblins, voter monsters, and just about everything else I could think of. It will send your Autumn-Aton to profitable zones, it will harvest your Cold Medicine Cabinet, rotate your Model Train Set, terminate when it fights the last of the nemesis quest wanderers, fill Pantsgiving fullness, switch in your trick-or-treating tot when relevant, lovingly place each of the aforementioned wanderers into a profitable zone, and do a bunch of other stuff if it is able to do so.
In exchange for being so thoroughly featured, it does take the user a bit out of the driver's seat. It will override (but then later reset, don't worry) a bunch of your settings, and because it is written in TypeScript it may be difficult for novice scripters to modify it to suit their own needs--you'll need to set up a dev environment, install a bunch of packages, and generally do a little bit of work.
The short answer is above--you just type
If you pass a numerical argument to freecandy (e.g.,
To tell freecandy to use a particular outfit when begging for candy, you can either add
If you don't tell freecandy what outfit to use, it'll choose by itself. You probably don't want it to do this--it makes that decision by looking at mall prices, but there are about a billion high-price low-volume candies sitting in the mall, waiting for you to crash their price to nothingness.
By default, freecandy will use the familiar you run it with for combats. You can add a
If you don't like the way freecandy is dynamically constructing the outfits used for dark houses (combat) while trick-or-treating, you can use the trickOutfit argument (or the freecandy_trickOutfit preference) to set a custom outfit that it'll use for dark houses. Doing so means you won't reap the benefits of dynamic outfit construction for those fights.
Arguments can be stacked, and are order-agnostic. You can run
If you want to review this information you can run
freecandy
into the cli and press enter. But there's also some other stuff you might want to do.If you pass a numerical argument to freecandy (e.g.,
freecandy 11
, freecandy will run at most that many blocks of trick-or-treating.To tell freecandy to use a particular outfit when begging for candy, you can either add
treatOutfit="the name of the outfit"
as an argument, or you can set the property freecandy_treatOutfit
to the name of the outfit you want to use. Passing it as an argument to the script takes precedence over setting the property; that is, if you run freecandy outfit="Shadow Shuit"
but earlier that day you ran set freecandy_treatOutfit=Legendary Regalia of the Pasta Master
, you'll use the Shadow Shuit.If you don't tell freecandy what outfit to use, it'll choose by itself. You probably don't want it to do this--it makes that decision by looking at mall prices, but there are about a billion high-price low-volume candies sitting in the mall, waiting for you to crash their price to nothingness.
By default, freecandy will use the familiar you run it with for combats. You can add a
familiar
argument (or use the freecandy_familiar preference) to change this.If you don't like the way freecandy is dynamically constructing the outfits used for dark houses (combat) while trick-or-treating, you can use the trickOutfit argument (or the freecandy_trickOutfit preference) to set a custom outfit that it'll use for dark houses. Doing so means you won't reap the benefits of dynamic outfit construction for those fights.
Arguments can be stacked, and are order-agnostic. You can run
freecandy familiar=Stooper treatOutfit="Hodgman's Regal Frippery" 69
if you want.If you want to review this information you can run
freecandy help
, which will print all args and parameters that freecandy uses and then terminate. That will literally always be up to date, while this thread may not be.This is probably an issue with your mafia preferences for the June cleaver. Consider installing Katarn's kolfix and running
kolfix cleaver
.freecandy is open source, and I like to think it's pretty legible. You may be able to answer this question yourself.
A good rule of thumb is that freecandy is intended to make it so you don't need to continuously stop and start the script as you trick-or-treat. It isn't designed to do things that you would mostly do before or after trick-or-treating. It won't diet for you, and it won't run your daily flags for you. It will fill pantsgiving fullness for you, because pantsgiving will only trigger if you are full, but it won't fill any liver space gained by using your designer sweatpants, because there's no particular benefit to doing so while the script is running.
One notable omission is that freecandy doesn't (currently) maintain buffs; you'll want to precast any buffs you want to have up and running.
A good rule of thumb is that freecandy is intended to make it so you don't need to continuously stop and start the script as you trick-or-treat. It isn't designed to do things that you would mostly do before or after trick-or-treating. It won't diet for you, and it won't run your daily flags for you. It will fill pantsgiving fullness for you, because pantsgiving will only trigger if you are full, but it won't fill any liver space gained by using your designer sweatpants, because there's no particular benefit to doing so while the script is running.
One notable omission is that freecandy doesn't (currently) maintain buffs; you'll want to precast any buffs you want to have up and running.
freecandy has a lot of support for building outfits when you use a stasis familiar (like an NPZR) or a riflet-like (so, a riftlet or a gnome). It does a lot of math to decide exactly how much to value familiar weight, and it compares the value of that familiar weight against the value of things like Mr. Screege's Spectacles or the Lucky Gold Ring.
When the familiar you use isn't one of those, familiar weight is all of a sudden not particularly valuable. Hallowe'en fights are free fights, so running a lot of Meat Drop isn't particularly useful, and the items they drop aren't particularly expensive. What this boils down to is that any slot not used for something like the Lucky Gold Ring is not actually very important. I added "0.01 Item Drop" to the maximizer string to make this case a little less funky, but you still might get some weird results.
When the familiar you use isn't one of those, familiar weight is all of a sudden not particularly valuable. Hallowe'en fights are free fights, so running a lot of Meat Drop isn't particularly useful, and the items they drop aren't particularly expensive. What this boils down to is that any slot not used for something like the Lucky Gold Ring is not actually very important. I added "0.01 Item Drop" to the maximizer string to make this case a little less funky, but you still might get some weird results.
You can do so here, but I probably will not check this thread very frequently. You will have more success making a github issue or posting in the freecandy support thread in the ASS discord.
Keep in mind that this is a script that can only be tested on hallowe'en. Content additions will either be made public 1 hallowe'en later than their release, or will be a little buggy. Be patient, and keep both kolmafia and freecandy up to date.
Keep in mind that this is a script that can only be tested on hallowe'en. Content additions will either be made public 1 hallowe'en later than their release, or will be a little buggy. Be patient, and keep both kolmafia and freecandy up to date.
Last edited: