EoD Softcore Ascension Script

Intro:
Hey everyone, I would like to present my first public script, a Soft-core Ascension script. It is defaulted to do 100% automated 4 day soft-core runs with nearly no requirements, no need for any Mr. A items or permed skills, and uses cheap items, ~150k meat or so worth of consumables. However, it has a slew of options you can change to try out different item builds to improve the run. But, I must warn you that it is still in a sort of Beta and has only been tested by me using DB and AT. With some tweaking you can get the other classes to work but "official" support for them should come out soon.

Background Info:
Here is a brief history explaining why I created the script which you can skip if you like. I recently got back into KoL after a several year hiatus and was looking into a way to improve my ascension times as it was taking me 10+ days to do one. During my research, I came across KoLMafia and found Bumcheek’s HC ascension script which I began playing around with it. It is an amazing script; but, it is heavily tailored toward HC ascensions for people that have things I did not; i.e. lots of permed skills, Mr. A familiars, etc. I found myself changing it a lot for my own needs; to the point that I had re-written around half the script. I realized that I should just write my own SC ascension script. My goal was to make it cheap, low to no requirements, and fast. Below is the product of my goals :).

Scripts:
Copy/Paste the following line into the KoLMafia CLI Command line. It will automatically install my bundle of scripts, Eatdrink, Universal Recovery, and Zlib.

Code:
 svn checkout https://svn.code.sf.net/p/eodscascension/code-0/

Requirements:
1. Ascend as Moxie class, AT or DB, and run the Day 1-4 scripts.
2. The only perm skill you absolutely need is Torso of Awareness.
3. If you don't have many perm skills, use path Class Act II. The script is solely tested using Class Act II, but unrestricted should work fine too.
4. Need ~200k or so meat for the item pulls. You can purchase them all before ascending by using the Item Acquisition in the relay script. This can save you ~40k or so.

My 4 Day Ascension Setup (Easy Ascension)
Class: Accordion Thief
Path: Class Act II: A Class For Pigs
Sign: Vole
Item: Astral Shirt
Consumption: Astral spleen item (energy drinks)
Storage Meat: ~150k
Equipment: Default items provided with script: Smithsness Gear and the Accordion Thief Legendary Accessory (La Hebilla del Cinturón de Lopez)

Recommended:
I recommend sign Vole. For astral consumables, I usually use the spleen item but any will work. AT classes seem to do slightly better in Class Act II path.

Features:
1. 100% automated softcore ascension runs for Moxie Classes. (My fastest test run has been around 4 day, 816 turns and the slowest 5 day 950ish turns. These occurred with only Torso of Awareness permed).
2. Slew of random options. Can control what is maximized, what items are pulled, mood, etc.
3. Can do 100% familiar runs.
3. Keeps track of what day the character is on during the ascension run.
4. Outputs how many adventures it took to complete things, like getting items or finishing an area. All the info is stored in data.
5. Automatically will buy items during the run to use, can turn it off but I highly recommend it.
6. Will eat whatever is best in your inventory at the end of the day

New Features:
1. Now has a Relay Script (EoDSCAscensionSettings) for options and items. To access, click "Load in Browser" then top right has a drop box with "-run script-". Select EoDSCAscensionSettings (may be a delay the first time)
a) Options are now easy to switch and no longer cannibalize your KoLMafia settings, the script will restore your defaults.​
b) Options are now character independent.​
c) Items are easy to add for any class/path/day/etc​
d) Default Items are already set up for Moxie classes for paths Class Act II and None (unrestricted)​
2. No longer has a day 5, instead there's a script file of just the quests. Best to run it if you can interact or just don't care. (I don't know how good it works.)
3. Lots of obsolete code has been removed.

Relay Script Teasers
1.Settings
options teaser.png

2. Items
item teaser.png

Known Issues:
1. The script will say you are on the "wrong" day. This is a safety per-caution to prevent you from accidentally running the wrong day. To change the day, type the following into Mafia's CLI (where X is the day you want to change it too)
Code:
zlib eodasc_AscendDay = X
2. If you fail to ascend in 4 days, just run the fourth day script again.
3. Feel free to report any other problems you find here along with any suggestions :).

Options Documentation
Additional information on what the check boxes do (checked is true).

1.Auto Satisfy with Mall -- If true, buy things from the mall automatically, used when pulling items you don't have in storage.
2. Auto Satisfy with NPCs -- If true, buy things from NPCs with meat, happens pretty much through all the quests.
3. Auto Satisfy with Coin Masters -- If true, buys things from NPCs using special currency, this is mainly used to purchase healing items for the shadow during the war.
4. Auto Craft -- If true, allows KoLMafia to auto craft things.
5. Use EoD CCS -- If true, uses my CCS. If you want to use your own CCS (like WHAM) then set it to false. Currently only has CCS for Moxie classes
6. Use Universal Recovery -- If true, use UR for healing.
7. Don't Abort from UR -- If true, script will not abort if UR fails to heal/cure beaten up.
8. Eat Junk from Inventory at End of Day -- If true, at the end of the day, the script will use whatever is in your inventory to top off fullness/drunkess/spleen.
9. Don't Safe Check -- If true, skips the safe check function, turn it on if you are running not moxie or have really good gear.
10. Don't Abort on Safe Check Fail -- If true, skips aborting from failing a safe check.
11. Buy Scorpion Bowls for Drunk Pygmies -- If true, saves adventures by buying bowls of scorpions. Will use a max of 5,500 meat and min of 500.
12. Don't Spleen with Your Familiars -- If true, skips using your spleen familiars to top your spleen off.



Thanks:
Lots of thanks to Bumcheek for his ascension script, I learned most of what I know about ASH from it and the wiki. Pieces of it are used throughout my script too, like the familiar usage.
You can find the script here: http://kolmafia.us/showthread.php?4...tomated-ascension-script!&highlight=universal

Thanks to all the people that have contributed to bumcheek’s script. Rinn, Theraze, Zarqon, and others.

Thanks to dj_d for his EatDrink.ash script which can be here: http://kolmafia.us/showthread.php?1...w-your-old-diet-stacks-up)&highlight=eatdrink.

Thanks to Bale for his simple coding examples, his various awesome scripts, and answering my questions
and Universal Recovery which can be found here: http://kolmafia.us/showthread.php?1780-Universal-Recovery-Script&highlight=universal.

Thanks to Sandiman for the ascension checklist script.
The original can be found here: http://kolmafia.us/showthread.php?1...r-a-painless-run&highlight=ascensionchecklist
Thanks to all the people who helped me learn about ASH by answering my random questions: Theraze, darkcodelagsniper, lostcalpolydude, Bale, Winterbay, fronobulax, and any others I may have left out.

And last but not least, all the developers of KoLMafia for making an awesome program! =)
 
Last edited:
Woah, this is a big script. I think you should consider using SVN to keep it all updated - that way all the individual files can be easily kept up-to-date by users at a single click.

It looks interesting, and I'm glad that someone's trying to do a SC ascend script - because as is perfectly clear, BCCAscend is primarily a HC script. Which, by the way, please feel free to take anything and everything you want from, if you want any more.

Without running it, it seems like the script has five individual scripts per day. Does that mean that if it doesn't get the steel margarita day 1, it doesn't get it at all? I would recommend trying to keep the number of files down - although BCCAscend's 7500+ lines is probably a little ridiculous - and maybe combine your day 1-5 files into one?

Can I also recommend that you recommend Winterbay's WHAM for combat? It really is a magnificant piece of coding and will save you time on CCS programming.
 
Wow. I second the suggestion to use SVN for distribution. Any one of several folks can help you set that up if you ask. I'll try it next time someone ascends.
 
Thanks Bumcheek, although I think I have already stole all I could from yours x]. The adventuring is pretty spot on, as in it has nearly no errors/aborts unless it messes up on Twin peak due to the terrible nature of that quest. I suppose if it didn't get the steel margarita on day 1 it wouldn't get it at all, although if that is the case then I think the person doing the items may really need to look into better consumption. As I have it set now, it gets steel liver with 50-70 adventures left over and that is its entire goal day 1.

The script for each day is an extra layer of security to prevent accidental repeated pulls. The ascension day only advances if you get to the end of day so if the script accidentally got messed up, like nightly maintenance comes all too soon but you were near the end of the day anyways, then you can manually move the day forward one and that will allow for the pulls of the next day take place rather than pulling the same stuff again which wouldn't help.

I guess I could have the day advance using the game day and another check of some sort to not have it advance a day when you just didn't play that day. So, while I do feel that having multiple scripts for each day is not the best method, I think it is currently the safest to prevent repeat pulls. Until I figure out a better method of handling the day advance, I will have to keep it as such.

As for the SVN, I guess I need to figure out how that all works and set it up. My biggest concern is I wouldn't want it to change the VarsandItems script as people would be putting their own items to pull. However, it would make it a lot easier to move all the files into their proper place and updating it automatically.

I hear a lot of fantastic stuff about WHAM and it probably would go great with it. I personally have never used it, although I really need too and have been meaning too, so I have a hard time recommending it before trying it. However, there is a place for people to put their own CCS so if they have WHAM and want to use it for the script they can. It will probably end up being way better than my super simple CCS x].
 
My biggest concern [about using SVN] is I wouldn't want it to change the VarsandItems script as people would be putting their own items to pull.

SVN allows the user to change their personal copy while removing any worry about making it harder to integrate the author's future updates.
 
So I'm trying this out on one of my characters and it got stuck Day 1 on the Temple not really sure what's going on.

> call scripts\EoD SC Ascension\EoDSCDay1.ash

Loading character status...

Name: fewyn
Class: Disco Bandit

Lv: 5
HP: 35 / 35
MP: 7 / 35

Mus: 16 (14), tnp = 11
Mys: 16 (14), tnp = 23
Mox: 28 (20), tnp = 35

Advs: 3
Meat: 2,462

Full: 3 / 15
Drunk: 2 / 14
Spleen: 12 / 15

Cleared mood.
Set mood trigger: When I run low on Butt-Rock Hair, use 5 hair spray
Set mood trigger: When I run low on Disco State of Mind, cast 1 Disco Aerobics
Set mood trigger: When I get Just the Best Anapests, uneffect just the best anapests
Set mood trigger: When I get Somewhat Poisoned, uneffect Somewhat Poisoned
Temple is not unlocked for some reason....

Requests complete.
 
I think I found the problem. Although it seems like you have/will run out of adventures before getting to 6 =\. I take it you didn't do Class Act II?

Sorry about this, I have only done testing for myself n it is very limited n scope so the script is kinda geared to my specifics lol. However, I feel like even without Class Act II you should have been able to get to level 6....

On a different note, today I am going to figure out how to set up the SVN to make it easier for everyone. I still have a few questions about it tho. How does the merging actually work? Because, when other people's get updated it resets all the changes I had made to the script.

For example, I used Bale's OCD Inventory script. It has a setting in the script
Code:
 boolean AskUser = false;
This is usually set to true and I changed it to false. Whenever it gets updated, it goes back to being true and I have to re-change it.

This isn't that big of an issue however in the case of my script, there are around 100 or so item changes one could make. If all these keep getting reset to my defaults every time, I think people would get annoyed.

Either way, I am going to get it working and worry about that problem later.
 
On a different note, today I am going to figure out how to set up the SVN to make it easier for everyone. I still have a few questions about it tho. How does the merging actually work? Because, when other people's get updated it resets all the changes I had made to the script.

For example, I used Bale's OCD Inventory script. It has a setting in the script
Code:
 boolean AskUser = false;
This is usually set to true and I changed it to false. Whenever it gets updated, it goes back to being true and I have to re-change it.

Edit the copy in the svn folder, not the one in the scripts folder. Then use "svn sync" to move those changes over to the scripts folder.
 
Edit the copy in the svn folder, not the one in the scripts folder. Then use "svn sync" to move those changes over to the scripts folder.

Alright, so if someone wanted to make permanent changes to the items part of my script, they should make changes in the svn folder and then svn sync? Is svn sync a KoLMafia command?

On a different note, I think I have it working with svn but I am not 100% sure. For some reason it has a code-0 at the end, not sure what is up with that but it seems to work >_>.
 
Looks good EoD!
You might want to consider pulling a meat maid instead of a meat engine. Then do the untinker quest before the meat car and you can untinker the meat maid for the meat engine and receive a bonus frilly skirt.
Regards,
Gnocchi
 
Wierd problem in day two

I encountered a problem during day 2 where the script got in an infinite loop trying to set the ballroom song because I didn't have the ballroom key.
Checking back through the session log I found:

[193] The Haunted Bedroom
Encounter: One Nightstand
Took choice 84/3: Lord Spookyraven's spectacles
choice.php?whichchoice=84&option=3&pwd
You acquire an item: Lord Spookyraven's spectacles
> afterAdventureScript
> It took 1 adventures to get 1 Lord Spookyraven's spectacles at The Haunted Bedroom.
> We are going to get 1 Spookyraven ballroom key at The Haunted Bedroom.
> Checking for familiar 'Pair of Stomping Boots' where x=1

familiar Pair of Stomping Boots (11 lbs)
> Doing the Goblin King Quest

I had a look in EoD_Adv but I cant see any way it can skip out of the function without leaving a message.
Does anyone have any ideas about why this could happen?

Thanks,
Gnocchi
 
Looks good EoD!
You might want to consider pulling a meat maid instead of a meat engine. Then do the untinker quest before the meat car and you can untinker the meat maid for the meat engine and receive a bonus frilly skirt.
Regards,
Gnocchi


Thanks! And that is a pretty good idea. I will set that up when I find some time :).

As for the problem on Day 2, I have no idea why it would do that. I guess it thought you had the key but you didn't =\. When you tried re-running the script did it skip getting it again or did it go and get it? The only time I have ran into problems similar to that is when something was wrong with KoLMafia. Did KoLMafia have anything about counters being over or something? That seems to cause me a lot of problems ;_;.

Also, did you install the script with the svn? I am curious if that is working properly.
 
Well, Hopefully This is something simple,
got it setup, and ran the checklist, that went fine, then the eat fast.
That netted me 449 adv. so good.
Then I ran day 1 and got this:

Loading character status...

Name: MenacetheFun
Class: Accordion Thief

Lv: 39
HP: 1021 / 1,120
MP: 995 / 1,095

Mus: 1,084 (985), tnp = 1,659
Mys: 1,095 (992), tnp = 608
Mox: 1,603 (1,451), tnp = 895

Advs: 420
Meat: 931,900

Full: 15 / 15
Drunk: 19 / 19
Spleen: 15 / 15

Unable to determine which astral item you took.

I currently have the astral shirt.
Any idea on what I should do from here?
 
@EliteofDelete: I didn't see any messages about counters in the logs. When I re-ran the script it obtained the key and things were fine. Maybe there should be a check for the key at the start of the attempts to enter the ballroom?
I loaded the scripts with svn and that worked fine. no oddities there.
On day 3 I had major problems with the Oil Peak. I was getting trashed every round by Oil Barons and Universal Recovery was throwing me out because It was unable to remove beaten-up. Is there any particular reason that EoDSCAscendVarsAndItems.ash so trashes many viable recovery sources?
Code:
//Sets what you want to use as MP and HP recovery
set_property("mpAutoRecoveryItems","visit the nuns;phonics down;knob goblin superseltzer;mountain stream soda;magical mystery juice;knob goblin seltzer;cherry cloaca cola;soda water;galaktik's fizzy invigorating tonic"); 
set_property("hpAutoRecoveryItems","disco nap;cannelloni cocoon;visit the nuns;tongue of the walrus;lasagna bandages;doc galaktik's ailment ointment;galaktik's curative nostrum");
Many of the hp recovery items remaining are not DB usable in Class Act II.
I eventually did Oil Peak manually fighting Oil Tycoons and then restarted day 3.
Do you want to have some discussions about how we extend the scripts to other character classes?

@MenaceTheGreat That message comes from when it is trying to determine which food/drink/spleen source you got from the Astral Deli. Currently the code only supports Astral Hotdogs and Astral Energy Drinks. Clothing items like Astral Shirt don't have any specific logic.
 
So I will try this on my old char without any tweaking.
So far I ascended today, as a pastamancer. I have no useful stuff in the inventory

Did day 1, no problems except changing familiar to use

Name: patochaos
Class: Disco Bandit

Lv: 7
HP: 36 / 41
MP: 22 / 37

Mus: 38 (34), tnp = 43
Mys: 37 (33), tnp = 54
Mox: 88 (52), tnp = 73

Advs: 26
Meat: 13,297

Full: 15 / 15
Drunk: 24 / 19
Spleen: 12 / 15
 
Well, Hopefully This is something simple,
got it setup, and ran the checklist, that went fine, then the eat fast.
That netted me 449 adv. so good.
Then I ran day 1 and got this:

Loading character status...

Name: MenacetheFun
Class: Accordion Thief

Lv: 39
HP: 1021 / 1,120
MP: 995 / 1,095

Mus: 1,084 (985), tnp = 1,659
Mys: 1,095 (992), tnp = 608
Mox: 1,603 (1,451), tnp = 895

Advs: 420
Meat: 931,900

Full: 15 / 15
Drunk: 19 / 19
Spleen: 15 / 15

Unable to determine which astral item you took.

I currently have the astral shirt.
Any idea on what I should do from here?

The problem is you do not have an astral consumption item. You are level 39 so you are way out of ronin and so pulls do not matter. The script should run mostly fine for you, I'd just have to tweak it so it doesn't check/pull stuff if you can interact.

The script isn't designed for people in casual, or out of ronin so it wouldn't be super special but it will work fine, after the tweak.

If you have it installed with SVN, it should update automatically and try it now. Should work fine (mostly). :)

@Gnocchi Masala: I put a check now before attempting the ballroom. Guess it is just one of those random oddities. Also putting a thing for the meat maid but I keep getting distracted before finishing it x).

As for the oil peak, it is a pain. It is hard to get the perfect amount of ML to be able to beat it without dieing, especially since they always hit :(. I am curious as to why your guy couldn't get through it tho. Did you change any of the items it uses? I currently have it where my guys do it without dying but maybe I need to work on the logic to make it more general.

As for "Is there any particular reason that EoDSCAscendVarsAndItems.ash so trashes many viable recovery sources?" I am unsure what other healing methods there are. I mainly just want it to heal with disco nap since it heals 40 for hardly any MP, and I have it setup to run a lot of MP regen so it is essentially a free heal. If you are talking about combat heals, that isn't what controls those. The script would never use combat heals unless you are using WHAM which I don't think cares about those options, but I could be wrong.

I would be interested in hearing any suggestions on making it compatible for all classes. I feel like it will need probably need the help of WHAM for anything besides moxie as the other classes tend to be skill reliant. I could easily put the maximizers to maximize the main state and that would help a lot. An issue tho is the items. I feel like I need to make item pulls better by probably putting them in a text file or something. However, I like the pretty colors that come with working in my .ash files xD.

Basically, for the items I am thinking one of two ways. First, is to have a whole 5 day item pulling for each class, and you put the items you want for that class in those 5 days. Then depending on your class it will just pull those items. But, that would make the Items file massive with potentially a lot of repeated stuff.

The other way is having a common item bay and then, mainstat common bay, and then a class specific bay. So quest items n such could go in the common bay as they would always be pulled by any class. Then specific class food could go in the main stat bay like mae wests for moxie. And then specific class gear like the legendary stuff or specific items you want could go in the class specific. This setup would be a lot more compact but more complex to get it working properly.

Anyways, I'd love to hear any thoughts you have on the subject.

@Patochaos: Glad to hear you got through day one. What do you mean no problems except for changing familiar use? Does he have no familiars or did something go wrong? xD
 
Last edited:
WHAM (or SmartStasis rather) does use healing combat skills available to you as a stasis option (i.e. should only do it if it's safe).
 
WHAM (or SmartStasis rather) does use healing combat skills available to you as a stasis option (i.e. should only do it if it's safe).

Yeah, but WHAM don't care about this property right?
Code:
set_property("mpAutoRecoveryItems","visit the nuns;phonics down;knob goblin superseltzer;mountain stream soda;magical mystery juice;knob goblin seltzer;cherry cloaca cola;soda water;galaktik's fizzy invigorating tonic"); 
set_property("hpAutoRecoveryItems","disco nap;cannelloni cocoon;visit the nuns;tongue of the walrus;lasagna bandages;doc galaktik's ailment ointment;galaktik's curative nostrum");
 
Back
Top