Noita
Persistence
 此主题已被置顶,因此可能具有重要性
Fox  [开发者] 2024 年 6 月 14 日 下午 5:39
Comments / Requests / Reports / Questions WELCOME!
Information should be free. I have no intention of locking my knowledge behind paywalls, code walls, or obscurity.

If you're interested in how any of this is done, would like help bug-fixing your own mod or just have anything you want to communicate, feel free to reply here or start your own discussion!
< >
正在显示第 1 - 15 条,共 27 条留言
Crimsonblod 2024 年 6 月 15 日 下午 5:05 
Moving this here to make your life easier!

The updates seem to solve pretty much all of my existing concerns!

One thing I do feel should be tweaked is the max cost for buying spells. And perhaps a way to buy certain spells automatically every time you start a run? (Alt fire teleport bolt from apotheosis goes so hard for early game movement! :-P )

But for the max cost, with how easy it can be to get truly ludicrous amounts of money, being able to increase the max buy cost of spells more would be helpful. Or perhaps an option where the more you buy, the more expensive they get (until they start to get more expensive than the work spells, likely with a configurable cap of say, 2x-6x or something?)

Also, a cap of how much you can earn per run, rather than just a % would be nice.

So if you died, you'd get x% of your gold, up to a configurable max. (So like, 5k-300k ish for the range? This would likely require some balance planning based on other decisions you make if you implement any of these other suggestions)
Crimsonblod 2024 年 6 月 19 日 上午 8:59 
Using a grid for selecting the wand look may be helpful if that's possible. Otherwise, perhaps a translucent preview on either side to see what the next wand would look like? Or possibly a number to show which wand you're looking at out X wand shapes available?
Illusia 2024 年 6 月 28 日 上午 1:12 
I have a very extreme usecase but any chance to set up a sorta 'loadout' you can buy everything for within a second easily or no? Another thing~ some spells are just plain not researchable. I suspect due to mod tampering to be honest. There are some mods that also brick the menu for whatever reason but I've disabled those by this point.
Anyways, basically wanted to ask if some of these effects are intentional to some extent or not.
Fox  [开发者] 2024 年 6 月 29 日 下午 12:38 
Hey, thanks for the feedback guys. I apologize for the silence -- I've been BUSY. lol

I've been rewriting the mod, from the ground up. Nearly everything is from-scratch, with the original author's data_store being closest to untouched.

As I chased down bugs and tried to add features, I ran into issues with the code design that made it difficult to work on in the ways I wished to work on them. I ran into situations where it was running expensive blocks of code, _every frame_. It cloned entities, it did manual bounds checking on hitboxes which have engine-inbuilt collision components. Lots of back-and-forth to fetch a dozen different values that were all, always, used together -- why not just return them in a batch? Lua makes some of the things difficult, due to its "every table is handled by-reference" nature. Noita makes some of the things difficult, as well.

As of today, I believe I have everything re-implemented, in less expensive ways, with a full ground-up UI rewrite which I feel improves aesthetic and usability, kills every bug I've taken note of, _plus_ some really nice quality of life features and improvements. (How annoyed are you every time you have to open the persistence menu to see if you've researched a spell before purchasing it...?)

It's been a LOT, but I'm stoked.

@Crimsonblod - I agree with the seemingly low cost after a certain point, and I've been thinking about that as well. Obviously some players will just consider that annoying because "I can still do it just as cheat-y, it just takes longer" but others enjoy holding themselves to the challenge. I will raise the difficulty ceiling of all configurable existing factors, but additionally -- My plan was to add two config options, let me know what you think.
- First, spells grow more expensive per purchase. Considered options; Per Spell, any spell. Per Copy, each spell's cost grows as more of that spell are purchased. Off, default.
- Second, cost growth factor -- linear vs exponential. As costs grow, they either grow by X% each time, or grow by a weighted exponent. IE at 10% it would go; 100, 110, 121, 133 etc.. vs at exp 10 it would go; 100, 158, 263, 459....

I hadn't considered a gold cap per run. Not my style, but I get it, lol -- I'll add that.

Re: wand grid -- you read my mind. The new wand selection window is SO much better. I could add a number, but due to how the data is stored, saved, and loaded, the data order in the array is not guaranteed to be consistent. I could sort the array, but then any time you add a wand the placement of any "after" it would change, so it would still be inconsistent through progression.


@Illusia - I've been working on a 'loadout' sort of function in my mind, as well. That's coming, but probably not with the first release of this update.
Unresearchable spells might be due to tampering from other mods, bugs with my mod, issues with load order, etc -- this update aims to attempt to solve many of those issues as well. I'd love to hear how it goes after the update. Spells which brick the menu (when it kills the whole mod, or just sprints off the bottom corner of the screen) are likely doing unexpected things with their projectile, and my attempt to redirect calls while simulating the projectiles is breaking. I may not be able to solve these, but I want to try, so feel free to keep a list and hold me to it, if you like.

I'm going to stick to vanilla-only in my attempts for the near future though, I'll directly chase mod compatibility once I'm more confident in my footing. My aim is for this mod to coexist with others and work with any spells whose authors wish to allow it, but this is my first Lua project, my first Noita mod (I've never played with any other mods, full stop) and I'm still learning a lot.

Thanks everyone for the feedback! Keep it coming! Even with a complete rewrite, bugs or quality of life issues might persist, so keep them coming!

Myself and my partner will be play-testing the mod as much as we can over the weekend. After that I'll spend a few days on code cleanup (lots of debug junk left so I can tell how it broke when it breaks) before I put it on the workshop.

Thanks, guys. You've been great.
Rhoasckm 2024 年 7 月 3 日 下午 12:56 
Hey there! Awesome to see someone picked up this concept, this is something I felt lacking in the game and I'm really glad to see it as a mod. I had the thought of trying to make a similar mod, but I don't have experience with this stuff and I does appear to be a bit of a daunting task.

The idea I had in mind were to allow players to purchase stat upgrades as well, like giving more health and levitation, maybe influencing monster drops or even adding a small passive health regen. Do you know if something of this nature would be possible to add to this mod?
Fox  [开发者] 2024 年 7 月 3 日 下午 9:13 
@Rhoasckm -- Howdy! Thank you. First off, it appears kinda daunting but if you're familiar with Lua or quick with languages, it can be picked up with some uh..persistence, lol. This is my first Lua mod, I'm not super experienced with Noita, and with the right tricks I figured stuff out. I'd be willing to share tips on approaching making a mod of your own, if you feel compelled to. You can create a discussion topic if you like and I'll try to watch out for it.

I'll assume you found the wiki's page about unpacking the data files and noita_dev.exe so you can see the console for debug prings, exceptions, as well as the API document (for what it's worth) etc.. The BIG, BIG helpers outside the game are VS Code + Noita LUA API and noita-file-autocomplete -- they're a touch buggy but they get the job done well enough. I write my code there. Decoda can be used with Noita as a runtime debugger, I use it to breakpoint a running game and inspect varaibles, debug code execution flow, catch exceptions, etc. The BIG, BIG helpers INSIDE the game are the Component Explorer mod (workshop) and the NoitaDearImGui mods. Using Component Explorer and Debug Mode (F5 when running noita_dev.exe) you can pause the simulation (ctrl-U) and inspect entities, components, etc etc to learn about how it works on the inside. Really though, if you want to give modding Noita a shot and need questions answered, I'll lend a hand.

For Persistence, though;
I would be open to adding character stat buffs as an optional feature, for sure. I had a poke at the game entities, so far I can see just a ton of things to play with. Drops are something I can't see a route to, either via spells or tweaking gold dropped -- there may be a way but I don't know it. Health regen could be done, as well as buffs to things like health max, move speed, flight speed, flight recharge delay, character gravity, swimming drag, incoming damage multipliers, stomach size, digestion rate, kick radius/force/knockback/damage, light radius, gold pickup range and speed.....

What I couldn't figure out is, what does this look like in the mod?
Would the mod make some fake perks to buy, or just a "modify wands" style window with some sliders which cost money to adjust?
A list of selectable buffs seems feasible, yes/no options to things like "increased digestion speed" or "decreased digestion speed", to start with some extra health, for "enhanced flight time" etc..?
Do we just let players buy normal perks, or pay to remove them?
How much should any of these things cost?

With spells it was easy; the game just has numbers for that. Wands, I honestly just reused the original author's formulas because they seemed fair. The rest, I'm a bit adrift.

If you're willing to bounce ideas, I'm open to trying to make it happen.
Rhoasckm 2024 年 7 月 5 日 下午 4:19 
Wow okay, I appreciate those tips! I have found the wiki page and took a look at some of the files other people have posted pictures of and it doesn't seem like the language would be too difficult to figure out, I might have to do some research on it in between my classes.

Regarding Persistence, that's awesome to see there's so many different variables that can be accessed, I didn't even consider things like swimming drag or flight speed. As for how you could implement something into your current setup, I do really like the system you're using for the wands and spell purchasing, and I feel like most intuitive thing to do would be just adding more options.

If I were to hop in and see it's been updated to include those, I would expect to see another option on the list called "Training" or something like that. As for the layout, it could be a fairly straight-forward list of several relevant attributes, with a 0/10 upgrades you could purchase at a scaling cost, with each upgrade bringing the attribute to a preset point, with an up/down arrow to raise or lower the attribute, maybe just refunding the gold if you lower it to allow for an easy respec?

As for the amounts, I think it should probably go up to a baseline double or triple the default, so like 300 HP when maxed out, for example. There's obviously some other things that would need a bit more thought, like kicks could just be a flat upgrade to all 4 attributes as determined by you, maybe focusing on the knockback and force rather than radius and damage?

Then of course there's some things that probably just aren't necessary to touch on, like gravity, swimming drag, stomach size, but who knows! Maybe you could find a cool way to implement those as a temporary buff, like additional perks added to the random pool? As far as perks go by the way, I actually feel they should stay as they are in the game, that would still give you a fair amount of randomization between runs and I feel like that would help the symbiosis between the mod and the game.
Fox  [开发者] 2024 年 7 月 9 日 下午 12:42 
No worries on the tips, and apologies for being slow -- Steam doesn't do a very good job of helping absent-minded folks keep track of these things. Feel free to add me as a friend if you'd like a direct conversation some time.

Lua is -great- for "just pick up and go" if you understand general programming concepts well. It's not object-oriented. Variables are not strongly typed like C. There's no line-end character required but it understands semicolon aka ; just like C does, and I use it religiously because I'm a C coder originally, lol.. Arrays, Enums, Classes, and basically anything more complicated than a variable is a Table. table.element is the same as table["element"] so if you need to get at a table element named in a string variable, it's table[variable] .... Multiple returns are cool! I've not used a language with that before. If we write function "function return_two_things(a); return a + 1, a + 3; end;" for example, you can catch it with "var_a, var_b = return_two_things(2);" would set var_a to 3 and var_b to 5. You can "store a function inside" a variable, aka "local _always_true = function() return true; end" ... Sorry for the messy approach, I'm just trying to mention the things which are most unusual about it, assuming you have feet on the ground with -some- language already.


Noita does a great job of exposing almost all of its inner goodness for us to play with, as modders. There's very little they don't easily accommodate -- in fact, making data persistent -between- runs (aka saving things like money, unlocked spells, wand stats, etc AKA the WHOLE POINT of this mod, lol) is the one thing they try -really- hard to prevent. If you do plan on modding the game, there are only two locations for data storage outside of a run, and neither is intuitive.

Training fits, I like that. The general design/layout seems familiar enough, I'm sure I could spin something up.

I do like the idea of adjusting gravity or swimming specifically, actually, as those aren't things the game naturally allows the player to adjust. Lower gravity might mean easier flying, lower swim drag would allow one to swim to the bottom or out of of certain bodies faster, or escape from lava quicker. Stomach size can be used to gain -astounding- amounts of power. (I'm trying not to spoil things, lol, I'm not sure how much you know/want to know/want to discover about the game... There's SO much more here than I ever knew, which is exactly what spurred me to find/assume maintenance of this mod.) I like the idea of adding training of health and so forth to the game, but I like the idea of adding access to things not normally accessible even more.

I agree that perks should remain as-is in game, on the whole. I don't particularly want to add any _right now_ either, but that time may come. Symbiosis is the right word for it. I want to coexist with the game, avoid treading places it already goes frequently, but expose more of it to the player at the same time. Those oddball trainables are a prime example, lol. It could be fun to see players find new and exciting ways to break game mechanics.

If you have any other input, definitely feel free to drop a message or start a discussion. If you want to chat, add me. Have a good one!
Fox  [开发者] 2024 年 7 月 12 日 下午 3:51 
V3 has been released, everyone! Enjoy!
AlexUnknown 2024 年 7 月 12 日 下午 6:43 
New update does not like one of my mods now. Also did you remove the play without save?
AlexUnknown 2024 年 7 月 12 日 下午 6:46 
Dead isn't dead is creating errors.
最后由 AlexUnknown 编辑于; 2024 年 7 月 12 日 下午 6:46
AlexUnknown 2024 年 7 月 12 日 下午 7:36 
I have infinite money (money broken)
最后由 AlexUnknown 编辑于; 2024 年 7 月 12 日 下午 7:46
This is a bug report that agrees with Alex's report, and it's all the details I could figure out on my own. Money can neither be added nor removed from a persistence slot's bank - you can Take as much money as you want without emptying the account, and Stashing money, either in the Lobby or on death, doesn't add any value to the account. This was tested both with 'Money saved on death' at 0k and at 40k, just in case the "0 = no limit" feature was broken. As a result, save files created prior to the update, so long as they have even $1 in the persistence bank, have infinite money, and save files created after the update cannot use the bank as it will not store their cash.

The second bug is with Always Cast. It seems like the idea was to make it so that the maximum number of Always-Casts was what you'd be able to research, but what happened is that the entire menu closes whenever a wand with an Always Cast is present in your inventory. In addition, the 'highlight wands that have unresearched spells' doesn't work when standing next to an Always Cast wand. This bug also occurs with fresh save files.

In addition, though I'm not totally sure what the problem is, the 'create wands' button doesn't currently work on my fresh save file - I researched the starting blue wand, but opening the create wands menu just leads to the screen being dimmed without any windows. Based on the highlights on other wands, it is storing the researched wand data, it's just not letting me open the wand creation menu.

Also, the config options don't work properly. I have "Teleport to Lobby" disabled, but it still gives me the option to teleport.

Overall, I like the update, and the fact that it doesn't break in the presence of unlimited spells anymore is really nice, but anyone who starts a new Persistence save file will have a very rough time without the ability to store money between runs.
Fox  [开发者] 2024 年 7 月 13 日 下午 1:18 
I'm kind of surprised to hear about the stash issues most of all, but several of these feel like I should have found them already. I've been playing it nonstop for the last month WHILE writing it, from the ground up. I directly tested -every- feature. I've got two others playing too. I don't get it.

I'll do some investigating, thanks for the reports.
Fox  [开发者] 2024 年 7 月 13 日 下午 1:32 
Good news I'm an idiot. Stash fix coming ..like...nowish...
< >
正在显示第 1 - 15 条,共 27 条留言
每页显示数: 1530 50