Proposal: Mod for forcing *real* acceleratium random-seed starts
5 months ago

There's been some discussion about the annoyance of repeatedly hitting new game to try and roll an acceleratium start for random-seed runs. Some solutions have been tried such as an autohotkey script to quickly start a new run. Another option would be a mod that picks a seed that, while still random, is always a vanilla acceleratium start. After some discussion with WUOTE the other day, I got a little carried away and made such a mod:

https://steamcommunity.com/sharedfiles/filedetails/?id=3095221664

And/or github https://github.com/tehkab/noita-accel-seeds-only

This mod is not just "make the starting flask always acceleratium"; rather, after the game picks a random seed, it will test (by the same lua function the game uses to choose the material) the starting flask material for that seed, and increment the seed until a true vanilla acceleratium start is chosen. This way, the only "advantage" provided is not having to hit new run over and over.

This is, to the best of my understanding, all happening early enough in initialization that the world ends up generating exactly as if the final seed (with acceleratium start) was picked by the game all along.

I went through several seeds "selected" by this mod and verified that the generations match noitool expected holy mountain spawns, and also checked misc spawns in the first floor versus the same seeds with a different seed changer mod. Finally, I used the same method to generate a list of all 103,794,048 acceleratium starts, and successfully matched it to a list that WUOTE independently generated via a different method ("test-seed-list" branch on github). I would of course appreciate anyone who wants to check the work here.

So the question to be considered is if use of this mod would be acceptable for random seed speedruns (assuming the other modded-run requirements are met of course)?

Finland

I had a good discussion about this on discord, people pointing out that Minecraft for example makes new categories out of tool assisted runs like Filtered Seed Glitchless. I think the subcategory feature would be enough, we could make a subcategory like Tools: "None/Accel start". To clarify what subcategories are, the current ones are "Major version: 1.0/Prerelease" and "Seed: Random/Seeded".

I'm all for more seeded subcategories as a completely unbiased participant.

Jokes aside, while I understand the motive for avoiding tedious resets to get a relatively common event which is essentially necessary for good times, what's to stop me from making a mod that resets until I get one of the 15712 seeds that has a Sampo laying around in mines and then moseying on up to the mountain altar with it? While the lua script would have to check quite a few more seeds, it would be nominally "random seed". Obviously this is a slightly hyperbolic case but we really have to be careful with the continued automation of random seed setting. IMO a rule that random seeds really have to be generated by the game on its own (i.e. new runs have to be at least 1 second apart since that's the smallest interval that gives a different seed) would be reasonable. This effectively prevents going through thousands of seeds in an otherwise-impossibly short amount of time. An in-between category between seeded and random that allows for seeding just "common" occurrences (decided completely arbitrarily) feels odd imho.

Edited by the author 5 months ago
Turkey

I'm all for it being included in Any% honestly. Only reason why I don't do more runs of Noita is because sometimes it takes me an alarmingly long time to find an accel start run lol. The mod doesn't hurt anything, and to my understanding it doesn't change the flask of a seed, it just finds a new/next random seed with the accel. I honestly want this so much and I would spend a lot of time running Noita if this was allowed. Sure, the sub-category is a good idea too, but I think there's no harm to add this in Any% honestly.

British Columbia, Canada

Can we guarantee that someone won't/can't modify the script to insert a known (to them) seed at any point?

Turkey

As with any "verified" mod that people are able to use during runs I don't think that'll be an issue if the mod passes enough verification

North Yorkshire, England

No point, adding this would just mean some other rng barrier such as perks or spells in the first mountain would become the reset point. As a sub category sure but still feels pointless to try to alleviate randomness in a game that is entirely centered around it.

In reply to the comment about accel start being necessary for good times, there are two top 10 times (and 11th place) that dont have an accel start which kind of proves you don't need it for a 'good' time.

Finland

Yeah, that was my view too. We would iterate on the filter to make it even more narrow, and it becomes more and more like a seeded run. Which still doesn't mean its a bad thing. We are still just saving people time spent on resetting, removing some frustration. Not everyone has all those hours to spend on resetting. Should maybe just call the subcategory FSR = filtered seed run or something like that, so that people can add more than accel starts to the filter.

I could see another filter being the seeds where a chest upwarps to the start and has accel in it.

Edited by the author 5 months ago
Yolksyb13 likes this
Turkey

I don't think FSR is a pretty good idea, if more things than Accel start can be added. Just accel start having a sub-category of its own would be a better idea imo. It'd just be removing the resetting for 10 minutes to get 1 run in struggle and that's it.

Yolksyb13 likes this
United States

I once restarted for 40 minutes before getting another acceleratium start, back when I used to really spam random seeds. I pretty much stopped running because I don't have the time to restart like that anymore, and the set seeds are so extremely optimized, so when I first heard of this mod, I thought it was really cool - but I do agree that if any mod is allowed, then how can you tell if someone isn't altering that mod to give more of an advantage? So, I guess, restarts it should stay.

New Zealand

I think this would make it a lot less tedious, and to be honest if someone really wanted to cheat it would be absolutely possible already and entirely undetectable.

Poland

Seeing as the discussion has stagnated, I wanted to give my insight and present a potential solution to the situation. If you don't know who I am, I've began speedrunning the game about 2 months ago and been in love with speedrunning since. I have achieved a little bit here and there, mainly in the 'short' categories: Any%, Low%, Overfed% and Hitless Any%. I have been a little discouraged with just how stale long speedrunning sessions have become recently. As you can guess this is going to have some personal feelings mixed in, as much as I'd like to present unbiased opinions only.

[EDIT: I'm going to talk about short speedruns only as that's what I've got experience in. All bosses is likely to be impacted less for now due to the routes and RNG getting more spread out and the time saves come from more than just the start. This is likely to change as the runs get more and more optimized. As can be seen from short categories. The short categories didn't use to be accel-start only for WR untill about sub 3, maybe sub 2:40~.]

I think it's important to establish right away just how important starting with acceleratium is for great times. It saves around 10 seconds in the starting walk to the entrance of Mines ALONE, around the same amount in the last HM as you can't simply skip the walk to the boss, not to mention any horizontal movements needed to traverse the zones, and even if you were to get good RNG in the first HM, and get Teleport bolts, that's still an additional RNG element if you don't just so happen to be running Low% when you get LDC Teles regardless.

Now it is by no means mandatory and for new speedrunners just to get acclimated to the playstyle, I would personally recommend actually playing the game with any starting flask. You can still achieve great times. Yes, you very much can. But in the more competitive WR grinds, you unfortunately have to go for acceleratium.

Yeah. Playing the game. Did you know that in in order to play the game when speedrunning for WR, you need to pass the 'relatively common event' barrier of 4.83%? Yeah, you straight up don't get to participate in the activity otherwise. And if you think waiting until the game decides to give you the 'ok' signal to start playing is not rare or tedious, I implore you. Please. Try it for 2 hours. Even 1 hour is enough. Then tell me whether you had the time of your life or not. Now this all comes from a person who managed to reset ~50k times in those 2 months which is as much as jaytothejee, current 2nd place holder of Any%, has on his account and he started 2 years ago.

If you want to achieve any respectable time within, I'd guess top 5 probably you have to have accel. And don't make the mistake of 'oh, this is just another RNG barrier in a game infested with RNG elements already' This is different. You don't play the game. And I know that repeating the argument doesn't make it any more valid.

I think we should look around different speedrunning communities and their issues with 'Tools That Assist Runs' or as you would otherwise call them 'TAS'. Now this mod is NOT TAS. According to wkipedia: A tool-assisted speedrun or tool-assisted superplay (TAS) is generally defined as a speedrun or playthrough composed of precise inputs recorded with tools such as video game emulators. Tool-assisted speedruns are generally created with the goal of creating theoretically perfect playthroughs.

And I want to make it clear. It doesn't get involved in the run itself and the only involvement in the game it has is before the world is created. To the best of my understanding, it looks at a seed's starting flask and if it doesn't see acceleratium it proceeds to the next one until it finds one. I see it as nothing more than the resetting script taken to the extreme. Unlike the filtered seed category of minecraft which handpicks good RNG inside a seed. For this reason, I don’t think it is bad nor is it harmful to the integrity of the game.

Now it can become harmful if it is iterated on. And this is where I stand strongly. For anything beyond Any% inclusion or even being a subcategory of its own in the state it is now, it would NOT be implemented. No more filters are to be added. This is the done deal. Not even choosing a different flask is okay. Why? Well, it’s because of its aim. To save time. No one resets for chaotic polymorphine to get a worm start. And while the RNG needed is heavier both to get polymorphed to a specific creature and the Holy Mountain spell+perk RNG, which would be actually reasonable to get with the mod, it’s the abuse of trust and the arbitrary goalposts and fences we would move and cross. The reason I insist so strongly is because this should, in my opinion, be the mod’s only aim. To reduce frustration of resetting. It's just that it's very easy to slip into this slippery slope of 'if this progresses anymore, we have seeded runs in random seed categories'. That should be its only purpose. To save time.

Edited by the author 3 months ago
jaytothejee likes this
Poland

People are quitting. There aren’t many new faces speedrunning.

Aliasbot, a very renowned member of the community, reportedly quit because of the tediousness of resets. And probably because he has a life.

Gotcoppu did, as can be seen because of his recent tweets.

WorkingJoe apparently does all flask starts for this reason too, though I only heard that briefly so I can't be sure. Same thing. [Edit: His 8th place Any% is an acid flask start]

There are probably many more names I don't know since I'm fairly new to the community.

This issue isn’t prevalent only in Noita speedrunning. A very good comparison can be made with mapless start hunting in Minecraft speedrunning. I watch that game from time to time but even as uninvolved as I am, I hear all about the boredom that mapless brings. Many people quit there too. Famous names. And mapless is if you didn't know, a buried treasure chest you'd normally get to with a map - a chest on the shore of a beach that has a rare chance of spawning that contains all the loot you need before going to the nether. It is the fastest way to go but unfortunately the most grindy, due to the RNG. And as it is part of the game, you simply have to bear with it there. In Noita? It's totally reasonable to skip a couple seeds in the generation process.

Another thing about Minecraft I wanted to mention is the Ninjabrain bot issue. To explain, Ninjabrain bot was created by Ninjabrain, a very in-the-know Minecraft speedrunner with an incredibly impressive amount of math knowledge. The software he created has the ability to measure the angles of Eyes of Ender [Eyes that go in the direction of the end portal when thrown] and upon measuring the angles of at least one eye [but most likely two], the bot tells you the exact location of the 'starter staircase' of the End Fortress that the eyes point to.

You might ask, how in the hell is this even allowed? Well, at first it was not. Then since the bot was out, people started creating huge spreadsheets of all the possible angles in excel, using the formula and since you can't simply ban 'calculation' 'thinking' etc. the bot was in the end legalized.

A parallel can be made to Noita. Why is this mod that doesn't involve itself in the gameplay, not to mention creating the world [Yeah, it does mess a little, just to the extent of skipping seeds] not applicable and allowed to be used?

Let's talk about the safety of the mods and the risks of manipulation or cheating using them.

Since the rule change of April 4th, 2023, all types of savefiles aside from that one flag for the bossess to drop regeneraton hearts, are allowed. All the unlocks. And this, if anyone wished and tried hard enough, is easily abusable. You can’t check the seed’s RNG afterwards if you don’t have the exact unlocks.Noitool shows bogus results if you try. So, if a person is running a slim save file [as is the most optimal – to only unlock a couple of bosskiller spells that spawn on wands and keep the spell pool as condensed as possible] it makes it basically impossible to verify 100%. You just have to trust. There might be ways of validation I’m not exposed to, to be fair.

My expertise is not coding/modding so I do not know for sure but according to Letaali, you absolutely could, for example

modify .xml files of a mod to look innocent in the "Mods" section in the game

e.g. edit increase some spells’ chance mod -and rename that shit to Streamer Wands or something

Add another functionality to an otherwise allowed mod so it still looks innocent but is not.

Sideload mods, which, good luck finding.

Therefore, I don’t think there is a reason for this mod to be under any more or less scrutiny than other innocuous looking mods

My Hitless Any% WR uses UI:Timer Hits Depth, has anyone got 100% sure way of telling whether I didn’t jack the chances up?

'So the question to be considered is if use of this mod would be acceptable for random seed speedruns'

This was the original question. Therefore, I ask. Whether what I mentioned is reasonable to be added to RSS, or under a subcategory. No iterating [unless a whole another category imo]

Whether added or not, I'd very much like an answer.

I will also probably still run the game until I get tired of it even if this doesn’t get added.

Thanks for reading this essay, came out longer than I wanted.

Edited by the author 3 months ago
South Korea

I'm afraid of the potential threat that the mod may pose, but at least I might come back to speedrunning if the mod is allowed.

The problem with the mod that I can think of is that people can manipulate the script of the mod so that it always shows acceleration and circle of displacement at a same time.

However, these can be implemented perfectly without mods afaik

Edited by the author 3 months ago
Poland

So that is a valid concern with this type of modifiaction and I agree. What if people insert a seed in there somewhere they know or what if the acceleratium isn't the only modified thing. And I was afraid of that too, but this is the entire mod, the whole entirety of a single .lua file:

Poland

So as you might have guessed, to actually make the mod do more than it's supposed to is akin to creating a whole new mod altogether. This doesn't look too abusable to me.

EDIT:I have also recently found out you can check your unlocks through noitool, you paste your flags folder into noitool.com and it shows you your unlocks. Potential new way to actually make sure of your unlocks which would allow to surely check seeds? (Probably known of already and for a reason not used)

Edited by the author 3 months ago
South Korea

Ultimately, in order to prevent cheating as much as possible in games that rely heavily on randomness like roguelikes, we need to set paper-level rules and proofs like Minecraft.

However, even this is not foolproof and is an unnecessary measure in a minor game like Noita.

I still don't have a good answer to the question of whether it's right to not allow any mods for the sake of minimal precautions, but there's no doubt that many speedrunners would be happy to use it if it were allowed.