Jump to content

[Mod] Lewd Noita Redux


Recommended Posts

Posted
3 hours ago, Ranot said:

There's a few solutions I can think of

it was already solved way back when the code was changed to no longer add inherittransformcomponent to player and make scene follow player instead of the other way around. this way player will never get stuck because the scene, even if spawned below player somewhere in the ground, will teleport to player instantly, and the player was not stuck in the first place. so no stucking and no slanting. this part of code was probably lost during branch merges

Posted
28 minutes ago, kobold tinkerer said:

it was already solved way back when the code was changed to no longer add inherittransformcomponent to player and make scene follow player instead of the other way around. this way player will never get stuck because the scene, even if spawned below player somewhere in the ground, will teleport to player instantly, and the player was not stuck in the first place. so no stucking and no slanting. this part of code was probably lost during branch merges

Ah, likely with the struggle stuff. Quite a few things broke with that.

 

I'm actually needing to rework some of the start_sex code to set up the 'Game Over' stuff and some future things. Currently, I'm attaching the player to a new entity when their health hits 0 so that their body can go limp and roll, but the sexscene also wants the player to be attached to it.

 

I suppose an alternative could be to disable the player, spawn a dummy object in their place, and just move the player along with the dummy without attaching them. But, I'd also like to see if I could attach a sort of root entity to the player that would function as a sort of anchor. The sexscene, entity(player), or whatever else would get attached to it whenever the player doesn't have control. Maybe something like that. Just rambling right now... not sure what to do yet.

 

 

I'm kind of taking a break atm. I have a few things I'm working on but I can't do much more without knowing what changes Vitalie will make. I have the Futa branch that I'm still waiting on, since I'm pretty sure I'll have to redo a lot of stuff if Vitalie merges his stuff before merging mine. I don't want to redo much more than that, so I'm on hiatus for the time being.

Posted
51 minutes ago, Ranot said:

redo a lot of stuff if Vitalie merges his stuff before merging mine

what is the point of gitgud if you still have to wait for each other? i thought it was the commit thing when everyone could work at the same time, but instead its different branches for each developer and they still have to be adapted to each other. the only difference is having to send branches to gitgud instead of archives in thread.

Posted
32 minutes ago, kobold tinkerer said:

what is the point of gitgud if you still have to wait for each other? i thought it was the commit thing when everyone could work at the same time, but instead its different branches for each developer and they still have to be adapted to each other. the only difference is having to send branches to gitgud instead of archives in thread.

Yeah, I'm not totally sure. It could be something I'm doing wrong. I just know that whenever I make a few changes and try to pull after a merge I end up having to clone the repo again and redoing those changes. I may be just not committing or staging things correctly or something, I have no idea.

Posted

Theres a git?

11 hours ago, kobold tinkerer said:

what is the point of gitgud if you still have to wait for each other? i thought it was the commit thing when everyone could work at the same time, but instead its different branches for each developer and they still have to be adapted to each other. the only difference is having to send branches to gitgud instead of archives in thread.

 

Posted
On 9/21/2026 at 10:54 PM, HellNoBro said:

Oh, and since I'm asking: anyone else crash after some time in the vicinity of the Pyramid? No clue what causes it, might not even be related to this mod. Again, just wondering if that's a 'me' problem. Thanks in advance!

I also experienced a crash, and it seems to happen frequently in both the "Temple of the Art" and the "Pyramid". The only thing I can think of that these two areas have in common is that they seem to spawn the trap enemies from the mod. I suspect that this might be what is causing the crashes.

 

(English translation by GPT)

Posted (edited)
7 hours ago, Bingusasdf said:

Theres a git?

 

Yeah, but I think it was decided to keep it private for now. It's mainly Vitalie and I that use it though.

 

2 hours ago, kuoa33 said:

I also experienced a crash, and it seems to happen frequently in both the "Temple of the Art" and the "Pyramid". The only thing I can think of that these two areas have in common is that they seem to spawn the trap enemies from the mod. I suspect that this might be what is causing the crashes.

Eesh... it crashes so fast that it doesn't even log it properly. I had to record the thing just to see what the error actually said.

 

It looks like it's part of the animal seduction code. There's some stack overflow and nil value errors.

@VitalieI'm not too familiar with this code yet, so I'll let you take a look at the errors.

 

Lua error - attempt to call a nil value

    Stack traceback:

Lua error - stack overflow

    Stack traceback:

        [C]: in function 'GlobalsGetValue'

        [string "mods/lewd_noita_redux/files/dialogue/ln_dialo..."]:53: in function 'ln_dialog_heal_stale_lock'

        [string "mods/lewd_noita_redux/files/sex_logic/animal_..."]8: in main chuck

Lua error - [string "mods/lewd_noita_redux/files/sex_logic/animal_..."]:5 stack overflow

    Stack traceback:

        [string "mods/lewd_noita_redux/files/sex_logic/animal_..."]:5: in main chunk

 

I had to manually type that out, so apologies for any typos. I'm not sure what's actually triggering it... though, I think I've experienced this crash before while testing a hostile helpless elk.

 

 

In hindsight, I could have just attached that error as an image. Ah well...

 

Edit: "main chuck" ...lol

Edited by Ranot
Chuck
Posted

i feel stupid because i just realized i could use EntityGetFilename to know which enemy it is instead of retrieving sprite name. the reason it is better is there are enemies that have different filenames and sprite names (wizard_homing vs wizard_wither, icemage vs skullmage, probably some modded enemies too) and it can potentially create problems in future. should we update this part?

Posted
9 minutes ago, kobold tinkerer said:

i feel stupid because i just realized i could use EntityGetFilename to know which enemy it is instead of retrieving sprite name. the reason it is better is there are enemies that have different filenames and sprite names (wizard_homing vs wizard_wither, icemage vs skullmage, probably some modded enemies too) and it can potentially create problems in future. should we update this part?

If it works, then absolutely! I've had some issues with EntityGetFilename in the past though.

 

I had some issues with it while trying to retrieve items from the hive. EntityGetFilename gets the file that created it, which works fine in most cases. The player starts with a few wands, but if you try to get the EntityGetFilename for the wands it doesn't return the xml file that was used for the wand, it returns the player file instead. I believe that's because the wands are being created in the player.xml.

 

There may also be an issue with the filename changing after you save and reload a run. It switches filenames that were loaded from the save to have a "??SAV/" instead of the full filename, likely because they were now created by the save/load entity. But... maybe it still keeps enough of the name for it to be useful?

 

I found out the hard way that some entities use different xml files but both use the same entity name (miner and miner_weak are both called '$animal_miner' for some reason).

 

Using the filename would definitely be more helpful if you can make it work.

Posted
2 hours ago, Ranot said:

miner and miner_weak are both called '$animal_miner'

what the sigma. how the enemy name in progress view works then? there is a translation key "animal_miner_weak" but its not used anywhere in data folder yet they have different names in progress. is it hardcoded?

 

2 hours ago, Ranot said:

There may also be an issue with the filename changing after you save and reload a run. It switches filenames that were loaded from the save to have a "??SAV/" instead of the full filename

can you give examples where it happens? i just tried to reload and check enemy filename and it didnt change

Posted
18 hours ago, Ranot said:

Yeah, but I think it was decided to keep it private for now. It's mainly Vitalie and I that use it though.

Ok fair enough, i just wanted to make sure I didnt miss a link somewhere. 

Posted
14 hours ago, kobold tinkerer said:

what the sigma. how the enemy name in progress view works then? there is a translation key "animal_miner_weak" but its not used anywhere in data folder yet they have different names in progress. is it hardcoded?

Hmm... maybe? I think you're likely right about the filename. They might just use the name of the xml file instead of what the entity is named within the file. With how many little errors there are in the vanilla code, I wouldn't be surprised if the developers copied the miner.xml file to miner_weak.xml but forgot to change the entity name.

 

14 hours ago, kobold tinkerer said:

can you give examples where it happens? i just tried to reload and check enemy filename and it didnt change

So, I tried printing the player's filename in OnPlayerSpawned.

 

From a fresh run I got:

        data/entities/player.xml

After Save & Quit, then continuing it became:

        ??SAV/player.xml

 

It seems like it loses the path to the file. But... luckily, it's that "player.xml" part that we actually care about! 

 

So yeah, I believe you are correct. Using the filename would likely be better than using the sprite name. I think that would also help with entities that use a png for their sprite instead of an xml.

Posted
22 hours ago, Ranot said:

It looks like it's part of the animal seduction code. There's some stack overflow and nil value errors.

@VitalieI'm not too familiar with this code yet, so I'll let you take a look at the errors.

 

Lua error - attempt to call a nil value

    Stack traceback:

Lua error - stack overflow

    Stack traceback:

        [C]: in function 'GlobalsGetValue'

        [string "mods/lewd_noita_redux/files/dialogue/ln_dialo..."]:53: in function 'ln_dialog_heal_stale_lock'

        [string "mods/lewd_noita_redux/files/sex_logic/animal_..."]8: in main chuck

Lua error - [string "mods/lewd_noita_redux/files/sex_logic/animal_..."]:5 stack overflow

    Stack traceback:

        [string "mods/lewd_noita_redux/files/sex_logic/animal_..."]:5: in main chunk

Interesting, now thats a strange interaction, gimme a few minutes, this has piqued my interest

Posted (edited)

Im pretty sure whats happening is the seduce prompt was re-entering itself until Lua ran out of stack. That also left interacting undefined, which is the "attempt to call a nil value" with an empty traceback exists. Pretty sure I fixed it, @Ranot are your changes in current master good enough for a minor update? Or do you still need to edit add stuff before it goes live?

Edited by Vitalie
Posted
4 hours ago, Bingusasdf said:

Ok fair enough, i just wanted to make sure I didnt miss a link somewhere. 

I assure you its not all that interesting, given the mod is literally open source all you would see is work in progress code and bugfixes, like sure I can probably make it public (gitgud has the worst management ui I have ever used for a git service) but what value that would provide anyone is beyond me

Posted (edited)
1 hour ago, Vitalie said:

Im pretty sure whats happening is the seduce prompt was re-entering itself until Lua ran out of stack. That also left interacting undefined, which is the "attempt to call a nil value" with an empty traceback exists. Pretty sure I fixed it, @Ranot are your changes in current master good enough for a minor update? Or do you still need to edit add stuff before it goes live?

Ah, interesting! I was actually pretty curious about that one. It felt weird that the Pyramid was one of the few places that it happened at.

 

Go ahead and add the minor update. Most of my work is in a file that isn't in the mod yet.

 

1 hour ago, Vitalie said:

I assure you its not all that interesting, given the mod is literally open source all you would see is work in progress code and bugfixes, like sure I can probably make it public (gitgud has the worst management ui I have ever used for a git service) but what value that would provide anyone is beyond me

Yeah, I guess it'd mainly be for the impatient types or just for those that are curious about what's going on behind the scenes. I do wish it was easier to use though.

 

Edit:

    For the changelog, I just added in futa functionality with those entities that had futa sprites made for them. I haven't added in anything else yet that people have suggested or provided code for, like the LoS for dialogue.

Edited by Ranot
Posted
2 hours ago, Vitalie said:

I assure you its not all that interesting, given the mod is literally open source all you would see is work in progress code and bugfixes, like sure I can probably make it public (gitgud has the worst management ui I have ever used for a git service) but what value that would provide anyone is beyond me

is gitgud even needed? whats the point if you still have to wait for each other? might as well send archives to the thread like we did before

Posted (edited)
10 minutes ago, kobold tinkerer said:

is gitgud even needed? whats the point if you still have to wait for each other? might as well send archives to the thread like we did before

its nice having a centralized master file, I have fucked up a couple times and needed to redownload stuff from the master. Its just convenient, using it is also not like the worst, its definitely worse than other git services but its still not that bad. Uploading new branches and merges are still very much so convenient  

Edited by Vitalie
Posted

I'm currently working on a change to the sex system that I think will be an improvement.

 

It's almost the same as the current sex_scene implementation, but switches it from being an entity that's solely for a sex scene, to an entity that can consist of a sex scene.

 

Essentially, I'm wanting to use a sort of root entity, which I'm referring to as 'node'. It serves as a sort of base for an interaction system, and is primarily used for it's transform properties and keeping track of data for it's entities and such. The node would be in the place where the current sex_scene is, and the sex_scene would instead be a child of the node. Entities would be added to the node, instead of the sex_scene.

 

The perk of keeping the sex_scene separate from other entities is that it allows for more options than a sex_scene. Lets say a couple orcs get near each other, a conversation_scene could trigger instead. Maybe if two horny opposing entities encounter each other, one would be like "Hey, I know we hate each other and all, but you're kinda cute. Wanna fuck?" and the other would be like "Yuck, fuck no!" and kill them (Or they fuck, lol).

 

 

Here's a few examples:

 

Player contact-

Functions the same until it's time to pick an animation. The node searches through it's children entities and picks an animation based on which ones there are. If the node has a male scavenger leader and a female miner for example, it'd look for an animation for those two. If the node has a male scavenger leader, a female miner, and a trap(which says that it has the female miner captured), then an animation of the male scavenger leader fucking a trapped female miner would play.

 

Traps-

Instead of an enemy spawning, a node containing a 'Trap' entity could spawn (I'll use a hole in the wall as an example). It sits idly until a compatible entity (like the player) gets too close, the trap activates and the player is pulled into the hole with their rear hanging out ( the player is added as a child to the node). The player is held there until they break out, and enemies can use them until they do so. When the player breaks free they're removed from the hole ( the node ), and the node reverts to how it initially was with just the 'Trap'. (Maybe there could be some silly mechanic where you could kick a rock into it to block it or something, lol)

 

Gangbangs-

Say the player is already getting banged by 2 orcs, but then a third comes by. They want some fun too but there isn't a 3-way animation, so they enter the node and stand to the side. A few more come by and suddenly there's a line that's rearing to go. The node keeps track of which enemies are in the scene, their order, and whatever other information that the gangbang scene needs to know. If an enemy passes by and sees an enemy that they hate, but that enemy is in line for sex, that enemy may decide to join the queue instead.

There would need to be a lot of checks for this to work of course, don't want an enemy waiting for sex while on fire... or drowning.

 

 

Those are my thoughts. I already have part of the system down, but felt like I should ask for some feedback before fully committing to it. It's one of those things that could have a drastic impact on things, so I didn't want to just change things willy-nilly.

 

Posted
3 hours ago, Ranot said:

Traps-

Instead of an enemy spawning, a node containing a 'Trap' entity could spawn (I'll use a hole in the wall as an example). It sits idly until a compatible entity (like the player) gets too close, the trap activates and the player is pulled into the hole with their rear hanging out ( the player is added as a child to the node). The player is held there until they break out, and enemies can use them until they do so. When the player breaks free they're removed from the hole ( the node ), and the node reverts to how it initially was with just the 'Trap'. (Maybe there could be some silly mechanic where you could kick a rock into it to block it or something, lol)

This in particular will massively help for what im working on

Posted
8 hours ago, Vitalie said:

I assure you its not all that interesting, given the mod is literally open source all you would see is work in progress code and bugfixes, like sure I can probably make it public (gitgud has the worst management ui I have ever used for a git service) but what value that would provide anyone is beyond me

In case this informal dev team suddenly self-destructs out of nowhere, or a plane crashes on someone's house or something, it's useful to have public githubs so others can fork the code and continue work on the mod. Otherwise anyone wanting to pick up the development would have to reverse-engineer the release files.

At least, that's the general argument for open-source modding across modding communities, and I personally agree with it, though I don't know if the actual specifics of how Noita mods are made would change things.

Posted
7 hours ago, Vitalie said:

its nice having a centralized master file, I have fucked up a couple times and needed to redownload stuff from the master. Its just convenient, using it is also not like the worst, its definitely worse than other git services but its still not that bad. Uploading new branches and merges are still very much so convenient  

why dont you just make a backup branch and do commits so many people can work on different stuff at the same time instead of mergin branches?

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...