Jump to content

[Mod] Lewd Noita Redux


Recommended Posts

Posted

Alright, even with debug mode enabled, and knowing I've had scenes with em, some enemies are not showing in the gallery. Off the top if my head, the hellhound, snail, and fly swarm (the one with 3 flies in it), and larva types. Also seems it defaults to the base form of the enemy, and isn't modified if the futanari chances are up or not.

Posted
25 minutes ago, lindazana said:

Alright, even with debug mode enabled, and knowing I've had scenes with em, some enemies are not showing in the gallery. Off the top if my head, the hellhound, snail, and fly swarm (the one with 3 flies in it), and larva types. Also seems it defaults to the base form of the enemy, and isn't modified if the futanari chances are up or not.

Hm, weird. Do these show up in your gallery @kobold tinkerer?

Posted

All mods disabled other than redux and summoners bonanza, both the most recent version put up, and debug mode activated. Shows most the enemies, but as said, missing some I've interacted with. Seems all the mod stuff after the mimic is being skipped? 

image.png.889d29a23e97629c32f4cfeccb1ba4e2.png

 

My current kill-list progress from the base game menu, 

image.png.d44b6d45faf38f291cd65d8b0b3a856f.png

Posted
5 hours ago, kobold tinkerer said:

yes but i have my own version, i can send files so you can compare

Thanks, can i update the Merged file with that if this helps solve the issue?

2 hours ago, lindazana said:

All mods disabled other than redux and summoners bonanza, both the most recent version put up, and debug mode activated. Shows most the enemies, but as said, missing some I've interacted with. Seems all the mod stuff after the mimic is being skipped? 

Okay, thanks, i'll take a look.

Posted

i moved scene functions from sex_scene.lua to separate files so that sex_scene wont be cluttered with exceptions like "if enemy1 then this, if enemy2 then that"

 

example:

miner_fire.lua inside sex_gfx folder

-- fire miner gives you cocktail after sex
function scene_function(scene)
    local x, y = EntityGetTransform(scene.enemy_id)
    local potion = EntityLoad("data/entities/projectiles/cocktail.xml", x, y)
    GamePrintImportant("Tulihiisi gives you a cocktail!", "", "mods/lewd_noita_redux/files/sex_logic/ui_msg.png")
    return scene
end
return {scene_function, 3}

return number is the RectAnimation number where the function should be executed

 

sex_scene.lua, within the initial setup for sd[scene]

-- check if various purpose function for this scene exists
-- first value is function to be executed, second is RectAnimation number
if ModTextFileGetContent("mods/lewd_noita_redux/files/sex_gfx/" .. sd[scene].scene_name .. ".lua") ~= nil then
  sd[scene].scene_function = dofile_once("mods/lewd_noita_redux/files/sex_gfx/" .. sd[scene].scene_name .. ".lua")
end

 

sex_scene.lua, before checking for second enemy

-- execute various purpose functions for different scenes
if sd[scene].scene_function ~= nil and sd[scene].scene_function_executed ~= true and sd[scene].current_rect == sd[scene].scene_function[2] then
  sd[scene] = sd[scene].scene_function[1](sd[scene])
  sd[scene].scene_function_executed = true
end

 

what do you think? how can this be improved?

 

i'm attaching all the functions i currently have, if you want to use them replace "lewd_noita" path with "lewd_noita_redux". you would also need to remove all the exceptions for those scenes from sex_scene.lua so they dont execute twice

functions.zip

Posted
Just now, kobold tinkerer said:

i moved scene functions from sex_scene.lua to separate files so that sex_scene wont be cluttered with exceptions like "if enemy1 then this, if enemy2 then that"

 

example:

miner_fire.lua inside sex_gfx folder

-- fire miner gives you cocktail after sex
function scene_function(scene)
    local x, y = EntityGetTransform(scene.enemy_id)
    local potion = EntityLoad("data/entities/projectiles/cocktail.xml", x, y)
    GamePrintImportant("Tulihiisi gives you a cocktail!", "", "mods/lewd_noita_redux/files/sex_logic/ui_msg.png")
    return scene
end
return {scene_function, 3}

return number is the RectAnimation number where the function should be executed

 

sex_scene.lua, within the initial setup for sd[scene]

-- check if various purpose function for this scene exists
-- first value is function to be executed, second is RectAnimation number
if ModTextFileGetContent("mods/lewd_noita_redux/files/sex_gfx/" .. sd[scene].scene_name .. ".lua") ~= nil then
  sd[scene].scene_function = dofile_once("mods/lewd_noita_redux/files/sex_gfx/" .. sd[scene].scene_name .. ".lua")
end

 

sex_scene.lua, before checking for second enemy

-- execute various purpose functions for different scenes
if sd[scene].scene_function ~= nil and sd[scene].scene_function_executed ~= true and sd[scene].current_rect == sd[scene].scene_function[2] then
  sd[scene] = sd[scene].scene_function[1](sd[scene])
  sd[scene].scene_function_executed = true
end

 

what do you think? how can this be improved?

 

i'm attaching all the functions i currently have, if you want to use them replace "lewd_noita" path with "lewd_noita_redux". you would also need to remove all the exceptions for those scenes from sex_scene.lua so they dont execute twice

functions.zip 4.46 kB · 0 downloads

i have a suspicion that was what timerz meant when he was talking about events tied to scenes. @Timerz can you confirm or deny this is what you meant?

Posted
3 minutes ago, kobold tinkerer said:

i moved scene functions from sex_scene.lua to separate files so that sex_scene wont be cluttered with exceptions like "if enemy1 then this, if enemy2 then that"

 

example:

miner_fire.lua inside sex_gfx folder

-- fire miner gives you cocktail after sex
function scene_function(scene)
    local x, y = EntityGetTransform(scene.enemy_id)
    local potion = EntityLoad("data/entities/projectiles/cocktail.xml", x, y)
    GamePrintImportant("Tulihiisi gives you a cocktail!", "", "mods/lewd_noita_redux/files/sex_logic/ui_msg.png")
    return scene
end
return {scene_function, 3}

return number is the RectAnimation number where the function should be executed

 

sex_scene.lua, within the initial setup for sd[scene]

-- check if various purpose function for this scene exists
-- first value is function to be executed, second is RectAnimation number
if ModTextFileGetContent("mods/lewd_noita_redux/files/sex_gfx/" .. sd[scene].scene_name .. ".lua") ~= nil then
  sd[scene].scene_function = dofile_once("mods/lewd_noita_redux/files/sex_gfx/" .. sd[scene].scene_name .. ".lua")
end

 

sex_scene.lua, before checking for second enemy

-- execute various purpose functions for different scenes
if sd[scene].scene_function ~= nil and sd[scene].scene_function_executed ~= true and sd[scene].current_rect == sd[scene].scene_function[2] then
  sd[scene] = sd[scene].scene_function[1](sd[scene])
  sd[scene].scene_function_executed = true
end

 

what do you think? how can this be improved?

 

i'm attaching all the functions i currently have, if you want to use them replace "lewd_noita" path with "lewd_noita_redux". you would also need to remove all the exceptions for those scenes from sex_scene.lua so they dont execute twice

functions.zip 4.46 kB · 0 downloads

oh shit, i forgot. redux version has .current_stage isntead of .current_rect, i dont know how to edit the code part of the post.

Posted
4 hours ago, kobold tinkerer said:

i have a suspicion that was what timerz meant when he was talking about events tied to scenes. @Timerz can you confirm or deny this is what you meant?


It was something like that yes, but I must suggest that you do not return the values as an array. Its often best to use named fields instead. It makes it easier to read codes in general.

Posted (edited)
59 minutes ago, Timerz said:


It was something like that yes, but I must suggest that you do not return the values as an array. Its often best to use named fields instead. It makes it easier to read codes in general.

i updated it to key value with keys being numbers which tell which stage it should happen. so its like

return {[1] = rect1, [5] = rect5}

rect1, rect5 being functions

Edited by kobold tinkerer
Posted
6 minutes ago, kobold tinkerer said:

i updated it to key value with keys being numbers which tell which stage it should happen. so its like

return {[1] = rect1, [5] = rect5}

rect1, rect5 being functions


Oh, now that's somewhat better. But the downside to this is that you can't really play two functions at the same time. Of course you can modify the function itself to do two things, but you're sacrificing a bit of modularity over there. However this works for what you're going with.

Posted
On 10/4/2026 at 4:13 PM, lindazana said:

Alright, even with debug mode enabled, and knowing I've had scenes with em, some enemies are not showing in the gallery. Off the top if my head, the hellhound, snail, and fly swarm (the one with 3 flies in it), and larva types. Also seems it defaults to the base form of the enemy, and isn't modified if the futanari chances are up or not.

Found it, thanks! It was a bug in LNR 1.4.1 itself: the enemies LNR adds (hellhound, snail, fly swarm, maggots, kobolds ...) never got into the game's enemy list, so the gallery had no tiles for them. Fixed in v1.5.2. The futa versions show in the gallery now too, as long as Futa Spawn Chance isn't set to 0 in settings.

 

9 hours ago, kobold tinkerer said:

what do you think? how can this be improved?

@kobold tinkererThanks for the files! Your gallery is in v1.5.2 now, on top of the stats across runs and the scene viewer (click an enemy to watch).

About the scene functions: I like getting the "if enemy1 then this" out of sex_scene.lua, and that a scene could bring its own effects (scene packs too). I went through your 13 files against redux:

- Only "at stage N" is too little. In redux most of these happen at the start, at the end or when the scene gets interrupted. Your vases use stage 6 as "after the last stage", and if the player gets away early, the killed eel / worm / vase / lurker never comes back. Redux already respawns them on every exit, because otherwise Lukki Lair ate them for good.
- With a single "executed" flag only the first function of {[1] = ..., [5] = ...} would run.
- Named events would solve that and @Timerz point: return { on_start = f, on_stage = { [3] = { f, g } }, on_end = f, on_abort = f }, each stage with its own flag, run when the stage is entered.
- Redux already does a lot of these differently or more: birth has the brood stuff (litters, imprint, twins), fungus gets its explosion back at the end, the giant fungus its spores, the ghost does one damage pulse a second instead of none, the mimic gets charmed so you can't farm it. Porting means taking redux's version and only moving it into the files.
- New for redux are the alchemist's potion and the fire hiisi's cocktail, plus friendly lurkers / miniblobs. Those are nice ideas.

Since it touches the core of sex_scene.lua, I think this should go into the real mod, so it doesn't end up in two versions, so i won't do anything with it.

--------

@Darkwolf6180

The belly while walking is in v1.5.2. Draw only the bulge, same layout and frames as the walking sprite: player_belly_1..3.png, and if the dress gets pushed out player_dress_belly_1..3.png. For Mina they go into files/belly_walk/ as mina_belly_1..3.png (README there). The workshop imports them with your character, shows them on walk / idle and lets you paint them.

Posted (edited)

Platinphoenixx Add-Ons v1.5.2 for LNR 1.4.1

Complete packages again, you don't need anything from the older posts.

Downloads

  • – copy lewd_noita_redux/ over mods/lewd_noita_redux, restart
  • – LNR 1.4.1 + community patches + add-ons + Summoner's Bonanza
  • – fixes for 1.4.1 and the community patches

Gallery

  • LNR's own enemies were missing from the gallery (hellhound, snail, fly swarm, maggots, kobolds ...). That was a bug in 1.4.1 itself: they never got into the game's enemy list. They're in now, next to their relatives. Thanks lindazana
  • The gallery is now @kobold tinkerer's newer version: how many of the enemies you've been with, all totals at the top (point at them for what they mean), new enemies blink until you look at them, and enemies with a scene you haven't had yet show as a black silhouette
  • Futa versions of the scenes show in the viewer too, as long as "Futa Spawn Chance" isn't 0

For artists: belly while walking

The womb fill and pregnancies can show on the walking sprite now, in 3 stages like in scenes. Nothing is drawn for it yet, so you won't see anything until someone does. How the files are named is in files/belly_walk/README.txt, character packs bring player_belly_1..3.png next to their walking sprite. The Sprite Workshop already imports them, shows them on walk / idle and lets you paint them, and its skeleton has a belly point now.

Full list in CHANGELOG.md in the zips. Please tell me if something's off.

 

EDIT: Files moved to most recent post

Edited by Platinphoenixx
Posted
On 10/3/2026 at 12:54 PM, kobold tinkerer said:

why not make a copy of animal ai component?

I took your values: the creatures that want you now dash 200 px at speed 1000 and keep coming until they've had you, no more giving up after 7 s. It'll be in the next update, not this one.

 

About copying the AnimalAIComponent: LNR itself writes into that component when a scene starts and puts its values back afterwards (enemy_attack_enable.lua). With a copy that gets swapped back, those writes can land on the wrong component or get undone. Noita also has no way to copy a component as a whole, you'd have to recreate it field by field, and the AI would forget who it's chasing. So I only save the 13 fields I change and put exactly those back.

Posted
5 hours ago, Timerz said:


Oh, now that's somewhat better. But the downside to this is that you can't really play two functions at the same time. Of course you can modify the function itself to do two things, but you're sacrificing a bit of modularity over there. However this works for what you're going with.

its easy to update, i just have no need for two functions at the same time

Posted
1 hour ago, kobold tinkerer said:

its easy to update, i just have no need for two functions at the same time


Yet.

Posted (edited)

Shouldn't iron womb prevent me from taking damage or gaining speed debuff for having too much cum? Like iron stomach?

Also wolf leading seems to be either not working or really buggy.

Do you supposed to get infinite heal from bonding with wolf? I usually just bond with one, spam the affection with the wolf or whatever until I get max HP, then tablet or bomb the wolf.

Edited by tree_eater
Posted (edited)

Is there a public git repository somewhere? How are we contributing? I don't know what issues are being fixed, being worked on, or what branches are there.

Edited by tree_eater
Posted
1 hour ago, tree_eater said:

Shouldn't iron womb prevent me from taking damage or gaining speed debuff for having too much cum? Like iron stomach?

Iron Womb: right now it only stops the side effects of what's inside you (and the slime slowdown). Getting slowed above 100 %, the damage above 150 % and the boom at 200 % are LNR's own, and the perk doesn't touch them. @lindazana asked for the same, so it's on my list of suggestions for the devs.

 

 

1 hour ago, tree_eater said:

Also wolf leading seems to be either not working or really buggy.

Wolf: the endless healing is a bug, nuzzling heals you every time with no cooldown. Noted for the devs too. What exactly goes wrong with leading? Does the wolf not follow, get stuck, or does the command do nothing at all? Are you using my add-ons? Specifically summoner's bonanza would help with that.

 

1 hour ago, tree_eater said:

Is there a public git repository somewhere? How are we contributing? I don't know what issues are being fixed, being worked on, or what branches are there.

Git: LNR's repository belongs to the devs, so how you contribute there is up to them (main dev @Vitalie is away until the 13th). Until then, post fixes and findings here, that's how the community stuff got in so far. For sprites there's the Sprite Workshop: https://lnr-workshop.noita.workers.dev. You can sign in there with Discord and send fixes for LNR's sprites to the shared project.

Posted (edited)
56 minutes ago, Platinphoenixx said:

What exactly goes wrong with leading? Does the wolf not follow, get stuck, or does the command do nothing at all? Are you using my add-ons?

I'm not sure what is it trying to do. It'd rather stand still or walk in the opposite direction of where I'm trying to go, so sounds like nothing. I'm using your add-ons but I'm not sure if I have added summoner's bonanza. I've downloaded from your recent links but only the top one, assuming that it includes all the add-on available. There's not a lot of instructions to go on about.

56 minutes ago, Platinphoenixx said:

Git: LNR's repository belongs to the devs, so how you contribute there is up to them (main dev @Vitalie is away until the 13th). Until then, post fixes and findings here, that's how the community stuff got in so far.

I see. Although, I think setting up some public repository is a good idea with a mod at this scale. From the look of it, we're doing open-source development with the tooling of a poor man's mailing list. An issue tracker (with or without git) would also be nice so we don't have to repetitively reporting known bugs. While I'm not actively pushing for this suggestion, I think it'd greatly benefit both the contributors' and the "patches acceptor's" ux. Assuming the main dev want contributors at all.

Edited by tree_eater
Posted
56 minutes ago, Platinphoenixx said:

Wolf

i noticed when bound wolf touches water it jumps as high as if trying to go to space. i assume its to prevent drowning?

 

also there is a problem if there is terrain between you and wolf you become stuck there with leash stretching infinitely

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...