#Ankh - An in-game timer and autosplitter for Balatro

221 messages · Page 1 of 1 (latest)

muted sun
#

There's not even proper number formatting yet... LOL

#

OK I added that

tender rampart
tender rampart
#

ty

frosty bane
#

@muted sun Would it be possible to add the timer result to the final window ?

muted sun
#

Yeah, I can get to that when I come home

#

I made the mod pretty quickly as a proof of concept so I’ll add more updates as things come along

muted sun
#

the code for doing this without modifying the original function is an actual nightmare

muted sun
#

Ok, new features in this version:

  • Elapsed Time shows in Win/Lose Screen
  • Timer state saved/loaded in savefiles
muted sun
#

New features:

  • Official Mode - A profile that prevents loading of profile/savefiles when running. Final time will appear in a gold background when this profile is used.
#

(what the winscreen looks like)

muted sun
#

It now shows as red if you have another mod loaded (in this case all the negatives are hacked)

silk knot
#

i think it makes sense for the speedrun mod to have "protections" to see whether a run has been tampered with

muted sun
#

Literally just added a check that the game exe hasn’t been tampered

silk knot
#

very nice

muted sun
#

And I also have one that prevents other mods from being loaded

#

For the ones you can do by accident there’ll be a red timer but for the sneakier ones there’ll be subtler indicators

muted sun
#

ok I added that

#

I'll upload it later, want to start obfuscating the code to prevent people from cheating by doing that

#

That also makes it dependent on the game and Steamodded version

muted sun
#

New features:

  • Detects loading other mods or tampering with game executable
  • Will display orange if a check is unable to work properly. For all checks to work properly you must be using Windows with v1.0.0k of Balatro and v0.6.0 of Steamodded because that is what I used to check the integrity of the game files.
muted sun
#

v0.1.0 Release

  • Has many more security checks
  • Detects full unlocks
  • Displays mod version on win screen
muted sun
#

Speedrun Timer Mod

muted sun
#

Two checks currently don’t work, so if your run is marked as invalid don’t worry

muted sun
#

v0.2.0 Release

  • Fix bugs in validation checks
  • Adds options menu (currently can only toggle timer visibility)
tidal sorrel
#

I tried disabling the Timer that is displayed during the game while I was in the main menu
Can I provide some further infos for you somehow to ease debugging?

/edit: this happens for both options

#

(I use multiple mods, so this might just be some incompatibility maybe)

muted sun
olive horizon
#

(me posting amessage here so it stays in my threads)

muted sun
#

Something big coming today 👀

timber crow
#

👀

languid radish
#

👀

muted sun
#

ok probably not today, since I found some lag issues with the mod

#

but very soon

languid radish
#

I mean, you're not obligated to release it. take your time

muted sun
#

Of course

muted sun
#

Ankh - A speedrun timer and autosplitter for Balatro

#

The full release of Ankh is here!

lusty fossil
#

hell yea

#

also are you going to make projects for every spectral card name

muted sun
#

no

#

but if someone wants to, Hex would be a cool name for the TAS tool

lusty fossil
#

just call the debug mode thing like, incantation balatrojoker

muted sun
#

*enables one variable in the code*
Trance

serene tartan
#

deja vu for run history please

tidal sorrel
#

So to properly install this you have to use the folder name "Ankh"
Your final directory is %Appdata%/Balatro/Mods/Ankh <- unzip the Ankh_1_0_0.zip in here
(I wanted to call it SpeedrunTimer Ankh so I wouldnt forget what it is but that lead to crashes. thought I should leave a note for this here)

#

also it doesnt show up in the achievement list since it doesnt use steamodded i guess

would it be possible to somehow check if a steamodded installation exists and then add a entry into the list? (just for easier handling) if not present it could just be ignored

muted sun
#

I can probably check if the variable for the Steamodded version is defined and then add it as a Steamodded mod

#

However, not my main priority as with Steamodded installed you won’t be able to submit the runs you get to the leaderboards anyway

#

The next release will be with r2mm hopefully, and then I can focus on some extra features like that

#

So that kinda fixes the issue with me hardcoding the mod directory name haha

muted sun
#

Ankh - An in-game timer and autosplitter for Balatro

languid radish
#

I think this is causing crashes whenever i fail a run (im trying to figure out if its another mod, but its most likely ankh as its not a steamodded mod) cause of a stack overflow

#

gimme a sec ill send screenshot

#

here

#

the crash report is very descriptive

muted sun
#

I believe this isn’t caused by my mod. The line number it reports is just setting a variable to 1000 lol

languid radish
#

lol

#

im gonna try and trace my steps with my mods

#

ugh

#

hmm better stack traces causes it to crash instantly

#

i mean like not give me a stack trace

languid radish
#

It was due to ankh

#

I have no idea why but removing ankh fixed the problem (and allowed me to finish my goated run)

muted sun
#

Hmm that’s odd

#

Stack overflow makes me think that there’s some conflict with this mod and another mod that changes the game over screen in some way

#

Since that would trigger when failing a run

#

If you don’t mind telling me what mods you’re using I can try to resolve that issue

languid radish
#

i realized the problem just now

#

its run reviewer

#

its cause it makes a button whenever you fail or win

#

Im guessing ankh and run reviewer are trying to make a button at the same spot (or text and a button?) which is causing the stack overflow

muted sun
#

Perhaps; I’ll investigate it later

#

That would make a lot of sense though

#

@languid radish found the issue and it’s kinda funny lol

#

Mi1cK used my code as a reference for creating the UI edits on the win/lose screen

#

So some of the variable names conflicted since we both used them

#

That also means that even without the stack overflow weird things would happen since he didn’t even change the ID of the button

#

(Either the elapsed time or the run review button would appear twice)

#

I’ll fix it for 1.0.1 though

muted sun
#

fixed it

#

I also just found a bug with Run Reviewer but I'm going to assume that's not my fault

#

I also don't know why the colors are broken. Gonna blame Steamodded or Run Reviewer for that too

languid radish
#

Thats funny, ty for fixing it though xd

muted sun
#

I’m sure this kind of problem is going to happen for many mods lol

languid radish
#

I bet

muted sun
languid radish
#

wait why isnt 1.0.1 on github

muted sun
#

I should probably add that since Thunderstore support is public now lol

#

But I do want to wait for someone to test that the security features work on their device with Thunderstore first

#

and also make sure they work when installed directly with Lovely and nativefs

muted sun
novel onyx
#

would it be possible to make the color indicator for the timer a weird gradient rather than a flat color?

#

makes it harder to just eyedrop over the color (idk if its feasible or not but as a precaution)

#

or a small color difference that is different dependent on the time in a weird non-linear way

#

like a 12:00 might be super slightly greener in hue compared to like a 12:01 even though they are both shades of gold/yellow

#

That way any photoshopped times can be found out since the color won't match the time, and anything that alters the colors in-game would be turned red

muted sun
#

that's a smart idea, I can see if something like that is possible in the game engine

#

could maybe make it change between two colors since there's already something that does that

silk knot
#

I'd be wary about failing for that since most runs would be uploaded on youtube and idk how that would work with their video compression

#

Unless you're provided a png image which is important since that's a lossless format that can show the colors as they are shown on screen

muted sun
silk knot
#

I said failing for that

#

It was meant to be specific for that reason

#

Cuz in the end lossless video almost doesn't exist so you can't really compare a pixel value to a database you have stored yourself

muted sun
#

Well if the entire box is one color then it could work…

#

Compared to it changing based on some function

novel onyx
#

maybe you could do those flags that they use for Celeste?

muted sun
solid dirge
#

hey, sorry to bug you, but ive tried installing with just nativefs, lovely, and ankh, and am getting hit with this error, any idea where i messed up? @muted sun https://awau.moe/8irWu5B.png

muted sun
#

Renaming it will break the install

solid dirge
#

oh i see

#

thanks,

#

same for nativefs i imagine?

muted sun
#

I don’t think that’s necessary

#

The directory name is just because of how I programmed Ankh

muted sun
idle vortex
#

just so I can keep this saved ima type in this chat

tired kestrel
muted sun
idle vortex
tired kestrel
#

it literally does the same thing as sending a message

#

but without the message

idle vortex
#

it actually does the opposite, just following the post shows up in the threads category at the top, but messaging makes you active in it. It sounds dumb but for threads it works like that

#

at least for me

#

It also is just personal prefernce at the end of the day

muted sun
lusty fossil
#

nice

muted sun
wooden meteor
#

How do i bring up the Replays / Security menu? Using the latest beta release

muted sun
#

Settings > Spectral Pack > Ankh > View a Replay

wooden meteor
#

Ah I see now. Should probably include that in the readme (and remove the mention of requiring nativefs)

#

This mod is extremely impressive by the way. I'm definitely seeing how we could leverage this for Sessions

unique oyster
#

Just wanted to give props for this indispensable QoL mod. I'm currently using it to archive my run history, and aside from a single corrupted replay and the occasional crash when returning to the main menu it's been smooth sailing.

#

My only suggestion would be to add the seed somewhere in the final filename for unseeded runs, alongside the profile name, date, and time.

muted sun
#

And thanks for enjoying the mod!

charred coral
#

First of all thx for the mod again. I just redid big parts of my wr run and a small potion of it (1 min) was not recorded. Thanks to you, I could reproduce the steps exactly.
However, there unfortunately are a few bugs.
-it is not uncommon for the replay to miss the cashout button and to not add the money correctly. Since this happened in my replay in the very first blind, the money was always wrong. At least the actions performed were mostly right.

#

now why I make the post. when you exit the game during an open arkana pack, it is not uncommon that reopening the game displays the cards in a different order. Since I used death there, everything after this is off.

muted sun
charred coral
#

yeah it is a bug/feature of vanilla
i might actually have old videos of it on my channel before ever touching mods

#

same arcana
differently ordered because of restarting

muted sun
#

I will work on overcoming this with Ankh

charred coral
#

thx. sorry for keeping you busy so much

muted sun
#

nah it’s all good

#

thanks for reporting these issues

charred coral
#

I am not sure if you plan this but a pausd button for the replay would be great
I could do stuff like checking the deck or other things
If it is possible to do a pause button, you please also do a one step forward button

muted sun
#

That would be awesome

#

I’ll definitely add it

charred coral
#

Hi. You know the run. Some people are actually really paying attention to my videos and making remarks. One of the comments under my ankh replay reads as follows:

hey, sorry for asking so many questions, but if I wanted to get this exact save, I would do the ankh replay till round 7 (where this video starts). then follow this video until A7B1, then switch to the ankh replay and then to part 2 right? btw I found some misplays in the ankh replay, such as copying a normal king instead of a gold one, which in this video, you fixed. and not putting a gold seal first even though you had chad

Me again.
The order of the hand played matters because of stuff like hanging chad. Not sure if you track this etc.

muted sun
#

hand ordering is tracked, yes

#

I plan to get back to working on Ankh relatively soon, so hopefully I'll have a version that patches the bugs you've reported that I can share

muted sun
charred coral
#

Not a bug but I think for seeded runs, you can display the seed in plain text on the continue screen

muted sun
#

Also this reminded me of another bug, the save UI in the main menu often shows the encrypted version of the seed

charred coral
muted sun
#

Perhaps that’s the cause of it

charred coral
charred coral
#

Not 100% sure but in my game, I tried to purposefully game over multiple times.
However, it just saved one of the replays
You know that they all originated in the same run
Maybe it cannot distinguish properly

muted sun
#

So the latest replay for that run is in one file, overwriting the rest

#

That’s probably easy to fix

long hinge
#

Is this mod compatible with Steamodded?
DrSpected like to use it for timer, but with Steamodded - crash on launch

silk knot
#

I'm pretty sure most people run it with steamodded

charred coral
#

I don’t
So it definitely works without

#

But depending on the lovely version you might experience issues

silk knot
#

@proper surge doesnt your modpack have both ankh and steamodded?

proper surge
#

Ofc

long hinge
proper surge
#

Latest which I forgot

#

2.0.0-beta2

long hinge
#

Okay, thanks

muted sun
crude jackal
#

I've been having a lot of fun using Ankh and saving my replays of a seeded run that I'm working on but I ran into a bug which I didn't see listed in the github notes as a known issue and I wanted to bring it to your attention. The bug consists of selling a Joker (or presumably a consumable) while in the cash out screen with there being the same Joker in the next shop. The replay immediately cashes out and then sells the joker which causes the replay to have a different joker than what they're supposed to have. This causes a desync which can eventually crash the game. I'm using Ankh 2.0.0-beta3. I was also using Brainstorm, Saturn, and Handy to help make my previous run but this recording was done with just the Ankh mod

Here's a full video of me creating the run and getting the bug to trigger, with the important part starting at 1:40-
https://youtu.be/1SuuISddHE4

Other than that, it's been able to handle a lot of savestate and save scumming for my run and I'm impressed with how consistent it's been overall lmao

muted sun
#

that’s a neat edge case you found, thanks

crude jackal
#

No problem! I'm glad this was helpful

wintry cove
#

Also running these mods

#

v2.0.0-beta3 works however blessed

muted sun
amber comet
#

peak

muted sun
#

thank you :)

subtle girder
muted sun
#

like if you’re doing a 3 deck run it adds the time navigating to the next deck

subtle girder
#

Why cant I replay my run 😦

muted sun
#

That seed is still in your savefile, so it’s an anticheat measure

subtle girder
#

so what do it count as cheat tho, as i only use the mod to save some good seeds i have found

muted sun
#

if you start a new run then it'll let you view the replay

#

but people could use that seed and some tools to scout ahead in endless, so it doesn't show the seed by default if the run is still continuable

woeful pine
#

is it a known bug that Ankh misses rearranging a joker that's meant to be copying Perkeo, resulting in a crash?

#

I have footage where I rearrange the joker, and if you need I can try to get footage of Ankh missing it and crashing as a result

#

it might have something to do with ectoplasm hitting the joker in question, but I'm not sure

muted sun
#

Ankh sometimes misses rearranging jokers as of now, yes

woeful pine
#

if you'd still like the footage let me know, I think in this particular case it has something to do with ecto hitting the blueprint in question since my run is extremely heavy on joker rearranging and that's the only time it misses it

woeful pine
#

also, it seems that using Ankh along with Steamodded causes severe performance issues that aren't present if Steamodded isn't installed

woeful pine
#

I know that Ankh not tracking Director's Cut/Retcon rerolls is a known issue, but I'd just like to add that it results in a crash immediately afterwards in the replay if the boss you rerolled from would otherwise cause you to lose (in my case, rerolling from the Plant). It doesn't cause any issues during the run itself, however. Other than that though, it's really impressive how well Ankh tracks everything, and watching the replay is really satisfying because it's kind of like a TAS. (Also, thank you for all the hard work on your various tools and mods! My runs would be impossible without Ankh, Talisman, The Soul and Immolate.)

plush elm
#

has replay feature been removed from latest version ? I can't find it anymore

cosmic stag
#

hello! im a non-coder pleb trying to install your ankh mod for timing. I'm not sure what im doing wrong but i tried installing the mod and it doesn't work for me

#

this is what i see

steel coral
vocal vigil
#

um...

steel coral
cursive flower
#

Tested pretty much everything but lmk if you run into new issues.
Tried to make sure to keep compatibility with old replays so hopefully there isn't many murphy69Smile

#

Also I did not test this with steamodded outside of supporting JSON metadata, so most likely all old issues are still present