Others [Moon Rhapsody mod] New animations + cheats

JoeTermin

Member
Dec 24, 2017
305
1,436
308
I am currently getting this error. Anyone know how to fix it? View attachment 4944581 View attachment 4944581
Are you sure you properly copied all the mod files, including the data.win? This usually happens if you use someone else's data.win (you need to use mine). Otherwise please send me your logs/modlog.txt so I can tell which animation is missing.

PS: if you don't mind, I'm deleting the previous message so that the update notice stays at the top of the page.
 
  • Like
Reactions: SlimMojo

JoeTermin

Member
Dec 24, 2017
305
1,436
308
Update mod version 1.3

Mega link updated in the main thread.

Changes:
  • Added Artix0 's Color mod version 0.4.

  • Added Artix0 's new sex-scene for Nyx X Ghost Hand as optional variant (50% chance):
    View attachment nyx.mp4













  • Added mk40 's variants : subtle, boobs/panties slightly more exposed during atk animations (Sasha)

  • Added 2 requested features:
    • Press U to tie/untie Sasha's hair
    • Increase the duration of sex animations in the config file (increase rapetimer_extend in the modconfig.json file included with this mod).
 
Last edited:

xiao1243

Newbie
Dec 16, 2023
30
26
77
I hope I'm not bothering you, but I was wondering if you have the zip file uploaded to another page.
Mega is asking for space, but I don't have any left.
 

mk40

Member
Jul 23, 2018
331
536
298
JoeTermin, I was wondering, would it be possible to change the duration of the timer for the ending animations? I'd like to experiment with extending some of the ending scenes, but it's not possible as it fade to black before it reachs the last sprites. There is even cases (for example "spr_H_Basilisk_capture_end") where by default it doesn't finish on the last sprite that was set on the vanilla animation.

If it's doable, it could be interesting to be able to tweak these value to be able tweak/extended some of the ending scenes. Though, a timer for each ending will be necessary as it's not something unified across all animations.

Or maybe another solution would be to completly disable these timers so the game wait for the last sprite before fading to black? But I'm guessing it would probably broke things.
 
Last edited:

JoeTermin

Member
Dec 24, 2017
305
1,436
308
JoeTermin, I was wondering, would it be possible to change the duration of the timer for the ending animations? I'd like to experiment with extending some of the ending scenes, but it's not possible as it fade to black before it reachs the last sprites. There is even cases (for example "spr_H_Basilisk_capture_end") where by default it doesn't finish on the last sprite that was set on the vanilla animation.

If it's doable, it could be interesting to be able to tweak these value to be able tweak/extended some of the ending scenes. Though, a timer for each ending will be necessary as it's not something unified across all animations.

Or maybe another solution would be to completly disable these timers so the game wait for the last sprite before fading to black? But I'm guessing it would probably broke things.
Here is a CE table, from which you can access a lot of game variables

It is a bit messy and not easy to use, but very powerful, it basically allows you to find and edit most of the game variables. To toggle it, start the game and load a save, open Cheat Engine, attach the game, load the table, then click the boxes in this order: "Gamemaker" (loading), "Tool" -> "Dump Object" (loading), "Create Memory Record" then you will have the list of game objects (for example obj_Undead, obj_Sasha etc.) and global variables under "BaseGame". For example the max HP is there below "BaseGame->maxhp".

1754673647982.png

From there you can play with these variables and combine them with other CE features like Pause / Freeze variable etc. to explore what needs to be done to achieve a specific functionality. Once you manage to find which variables and what values should be edited, I can automate that in the dll (basically you just need to tell me variable X needs to be changed to Y when Z happens and I can add that to the .exe directly). I don't know how familiar you are with CE, if you're not then I'd say take some time to do the CE tutorial first (CE is a great tool to learn anyway it allows you to mod all games not just to Moon Rhapsody). You can mostly skip the sections about pointers and auto-assemble in the tutorial but know that I use them a lot (especially auto-assemble).

Let's take H-scene duration for example, if you inspect at the variables values as the game evolves (by pausing during H-scenes) you will very quickly realize the one controlling H-scene length is "BaseGame->cumlevel". It starts at 0 then increases while the heroine gets raped, and once it reaches a certain threshold it triggers the climax scene (the threshold is around 5 but seems to depend on the enemy). Now you can freeze "BaseGame->cumlevel" in CE, and you'll notice the H-scene goes on forever, so we can use it to extend H-scenes. This is actually what I did in the latest version of the dll I introduced this new config in the JSON "rapetimer_extend" which does just that, it basically just resets "cumlevel" to 0 a few times before it reaches the threashold, it does it N times, calibrated so that it extends the H-scene by N seconds (It would be cleaner to set the threshold directly to the H-scene duration we want but I didn't find the variable for it so I came up with this workaround, however this might be what causes bugged H-scenes for certain enemies that somebody reported earlier, maybe I need to reconsider this method). Unfortunately, I don't have time to play with it myself to find what is the right variable to edit / where the threshold is defined, but with the CE table you should be able to do it. This is for H-scene length not climax length, I haven't looked at the latter, but maybe try freezing "cumlevel" after climax and see if it extends it, it might be controlled by the same variable. Or maybe it's a different variable, try looking at the variables below "obj_screenKO" or "obj_gameover" (if you can't find the variable let me know as I maybe have a trick to find it).

Attached is also a very useful table with the function addresses (so you can place breakpoints but maybe it's a bit too advanced for now).
 
Last edited:
  • Heart
  • Like
Reactions: Artix0 and SlimMojo

mk40

Member
Jul 23, 2018
331
536
298
Here is a CE table, from which you can access a lot of game variables

It is a bit messy and not easy to use, but very powerful, it basically allows you to find and edit most of the game variables. To toggle it, start the game and load a save, open the table with Cheat Engine, attach the game to it, then click the boxes in this order: "Gamemaker" (loading), "Tool" -> "Dump Object" (loading), "Create Memory Record" then you will have the list of game objects (for example obj_Undead, obj_Sasha etc.) and global variables under "BaseGame". For example the max HP is there below "BaseGame->maxhp".

View attachment 5125150

From there you can play with these variables and combine them with other CE features like Pause / Freeze variable etc. to explore what needs to be done to achieve a specific functionality. Once you manage to find which variables and what values should be edited, I can automate that in the dll (basically you just need to tell me variable X needs to be changed to Y when Z happens and I can add that to the .exe directly). I don't know how familiar you are with CE, if you're not then I'd say take some time to do the CE tutorial first (CE is a great tool to learn anyway it allows you to mod all games not just to Moon Rhapsody). You can mostly skip the sections about pointers and auto-assemble in the tutorial but know that I use them a lot (especially auto-assemble).

Let's take H-scene duration for example, if you inspect at the variables values as the game evolves (by pausing during H-scenes) you will very quickly realize the one controlling H-scene length is "BaseGame->cumlevel". It starts at 0 then increases while the heroine gets raped, and once it reaches a certain threshold it triggers the climax scene (the threshold is around 5 but seems to depend on the enemy). Now you can freeze "BaseGame->cumlevel" in CE, and you'll notice the H-scene goes on forever, so we can use it to extend H-scenes. This is actually what I did in the latest version of the dll I introduced this new config in the JSON "rapetimer_extend" which does just that, it basically just resets "cumlevel" to 0 a few times before it reaches the threashold, it does it N times, calibrated so that it extends the H-scene by N seconds (It would be cleaner to set the threshold directly to the H-scene duration we want but I didn't find the variable for it so I came up with this workaround, however this might be what causes bugged H-scenes for certain enemies that somebody reported earlier, maybe I need to reconsider this method). Unfortunately, I don't have time to play with it myself to find what is the right variable to edit / where the threshold is defined, but with the CE table you should be able to do it. This is for H-scene length not climax length, I haven't looked at the latter, but maybe try freezing "cumlevel" after climax and see if it extends it, it might be controlled by the same variable. Or maybe it's a different variable, try looking at the variables below "obj_screenKO" or "obj_gameover" (if you can't find the variable let me know as I maybe have a trick to find it).

Attached is also a very useful table with the function addresses (so you can place breakpoints but maybe it's a bit too advanced for now).
I'm getting this error when loading your .ct file:
1754679081616.png


I'll give a try but there is a very high chance I'll completly fail to make sense of all of this. :ROFLMAO:
 

JoeTermin

Member
Dec 24, 2017
305
1,436
308
I'm getting this error when loading your .ct file:
View attachment 5125425


I'll give a try but there is a very high chance I'll completly fail to make sense of all of this. :ROFLMAO:
Hmm this is not a good sign, and is a rather obscure error, I think it means it failed to recognize the game. Do you get it immediately when loading the table ("Load"), without clicking the boxes? actually maybe I gave you the instructions wrong, you need to first attach CE to the game, then click "Load" and select the cheat table, maybe it'll work better in this order (although both orders work for me).

You can also try to start CE as admin.

Also make sure you run the "Moon Rhapsody.exe" v3.1.3 exe that I distributed in my mod, and not the original exe (the cheat table is for the modded exe) - although again both at least load the table successfully for me.

If it still gives the same error, this sometimes happens as our systems are different (Windows/libraries version etc.) so I would need more info (if you can try to find which line triggers this "attempts to perform arithmetic on nil value")

EDIT: also try a recent CE version (7.5 or 7.6)
 
Last edited:

mk40

Member
Jul 23, 2018
331
536
298
The error I posted earlier was indeed because I loaded the .ct file before attaching the game to it.

It is a bit messy and not easy to use, but very powerful, it basically allows you to find and edit most of the game variables. To toggle it, start the game and load a save, open the table with Cheat Engine, attach the game to it, then click the boxes in this order: "Gamemaker" (loading), "Tool" -> "Dump Object" (loading), "Create Memory Record" then you will have the list of game objects (for example obj_Undead, obj_Sasha etc.) and global variables under "BaseGame". For example the max HP is there below "BaseGame->maxhp".
A bit messy is an understatement at this point, each time I had attempted to use cheat engine to do something a bit complex, I fail completly... and well, as expected, this time isn't different.

I checked "Gamemaker" (it does something the in the Lua Engine window) then proceed to check "Dump Object" under "Tool" and it doesn't do anything, nothing work on my end. As valuable and usefull as it is, I just hate cheat engine.
 
Last edited:

JoeTermin

Member
Dec 24, 2017
305
1,436
308
The error I posted earlier was indeed because I loaded the .ct file before attaching the game to it.



A bit messy is an understatement at this point, each time I had attempted to use cheat engine to do something a bit complex, I fail completly... and well, as expected, this time isn't different.

I checked "Gamemaker" (it does something the in the Lua Engine window) then proceed to check "Dump Object" under "Tool" and it doesn't do anything, nothing work on my end. As valuable and usefull as it is, I just hate cheat engine.
CE is always empirical science, it might be just one small thing that is different on your computer that I didn't think of when making the table, I'd bet 95% of it is working and it's just a small thing or two that we're missing.

Especially if it went past the "GameMaker" stage then it means you are extremely close for it to work (the expected behavior for this step is, after you click the box the lua window should print random stuff for 5 sec, then for 0.5 sec it will print a long list of "obj_xyz" and then almost immediatly close itself).

95% of the actual work is done in this "GameMaker" step, then the remaining 5% under "Dump Object" is just to reorganize the information but yeah unfortunately to debug why that 5% doesn't work I would probably need to try several things. I'd recommend to try the whole process one more time though as sometimes the cheat table can randomly fail to work (rare but restarting the game or your computer fixes it - it also helps to load a MR save and not just stay in menu) and maybe try to click all the boxes as some of them have different heuristics. You'll know it works if you see a bunch of "obj_xyz" things under "Create Memory Record" like I shared in the screenshot above.
 

derakino999

Well-Known Member
Sep 30, 2017
1,620
956
257
JoeTermin
Yes that filter is accessible through obj_game->"censor" in the table I shared previously. It starts at 0 and goes up to 0.95 as the background gets darkened. I can mod that, but I don't understand the ask, do you want it to stay at 0 ? or at 1 ? (above the game's normal maximum)

at 0:
View attachment 3286742


at 0.95: (game's default)
View attachment 3286745


at 1:
View attachment 3286748


As for the image with inverted colors, yes that's also controlled by the game code, it simply applies an inverted filter to the current sprite. I roughly know how to control it.
i'm trying your table from the main thread but now it's not working and everything just shows as ???
i swear it worked before but not anymore, what could be causing this?
i'm running your version of the game
Moon_Rhapsody_Modded_f95v1.3
i also tried running mod_atk.exe as well
1761814761988.png
i cannot click on anything, and btw i can't find obj_game censor either
 

JoeTermin

Member
Dec 24, 2017
305
1,436
308
JoeTermin

i'm trying your table from the main thread but now it's not working and everything just shows as ???
i swear it worked before but not anymore, what could be causing this?
i'm running your version of the game
Moon_Rhapsody_Modded_f95v1.3
i also tried running mod_atk.exe as well
View attachment 5389427
i cannot click on anything, and btw i can't find obj_game censor either
Can you try the attached table instead? It's the original I used from UnknownCheats. It will be slower, but more generic, maybe it will work in your case. To use, follow these instructions
 

derakino999

Well-Known Member
Sep 30, 2017
1,620
956
257
Can you try the attached table instead? It's the original I used from UnknownCheats. It will be slower, but more generic, maybe it will work in your case. To use, follow these instructions
thanks a lot for your help
hmm
when i do this step
click on "Gamemaker" (loading)
a new window appears with an execute button
do i leave it alone or do i click execute? nothing happens actually
but i am asking because i can't get it to work
i cannot tick Dump Object
no matter how many times i click it i can't just tick the box
 

JoeTermin

Member
Dec 24, 2017
305
1,436
308
do i leave it alone or do i click execute? nothing happens actually
No it is supposed to take 2-3 sec and then the window should close itself after printing a bunch of things but it often gets stuck there when something goes wrong. Unfortunately, it is quite likely that something goes wrong, as the table attempts a lot of handcrafted guesses. I thought I fixed the problems in this table I shared here, but I think you said this one is not working for you. What was the error you got? Can you take a screenshot of what happens in the "execute" window after clicking "Gamemaker" ?

Maybe try each table 2 times, restarting the game and CE in-between. Sometimes it can suddenly work, it's quite unstable unfortunately but for me it works about 90% of the time.
 

derakino999

Well-Known Member
Sep 30, 2017
1,620
956
257
No it is supposed to take 2-3 sec and then the window should close itself after printing a bunch of things but it often gets stuck there when something goes wrong. Unfortunately, it is quite likely that something goes wrong, as the table attempts a lot of handcrafted guesses. I thought I fixed the problems in this table I shared here, but I think you said this one is not working for you. What was the error you got? Can you take a screenshot of what happens in the "execute" window after clicking "Gamemaker" ?

Maybe try each table 2 times, restarting the game and CE in-between. Sometimes it can suddenly work, it's quite unstable unfortunately but for me it works about 90% of the time.
i've been trying it and the execute window remains open at the end but it's working?
so it seems fine so far
it crashes a few times but i understand that's bound to happen
i've been experimenting and it's great
i basically wanted to try giving sasha the aroused or charm status and see if it triggered that one sprite for the basilisk capture scene where he grabs her boob
but nope nothing
though there's like 3 items i can tick related to this some called arouse and some called charm
there's also another one called charmtarget
basically i don't know what each does exactly, upon activation the heart icon appears ingame however in the pause menu it doesn't say status charmed so who knows i'll have to keep experimenting
thanks a lot joe this is awesome and so fun
 
  • Like
Reactions: JoeTermin

JoeTermin

Member
Dec 24, 2017
305
1,436
308
i've been trying it and the execute window remains open at the end but it's working?
so it seems fine so far
it crashes a few times but i understand that's bound to happen
i've been experimenting and it's great
i basically wanted to try giving sasha the aroused or charm status and see if it triggered that one sprite for the basilisk capture scene where he grabs her boob
but nope nothing
though there's like 3 items i can tick related to this some called arouse and some called charm
there's also another one called charmtarget
basically i don't know what each does exactly, upon activation the heart icon appears ingame however in the pause menu it doesn't say status charmed so who knows i'll have to keep experimenting
thanks a lot joe this is awesome and so fun
It shouldn't crash very often, depends what you mean by crash. If you attach the table and let the game run it should work. Once you start modifying variables of course the game can crash due to unexpected values though

Let me know if you find interesting variables, since I can automate it in my mod. For example a much requested feature is to be able to respawn after H-scene, I played a little with hp but it would usually keep her in a stunlocked state
 
  • Like
Reactions: derakino999

derakino999

Well-Known Member
Sep 30, 2017
1,620
956
257
It shouldn't crash very often, depends what you mean by crash. If you attach the table and let the game run it should work. Once you start modifying variables of course the game can crash due to unexpected values though

Let me know if you find interesting variables, since I can automate it in my mod. For example a much requested feature is to be able to respawn after H-scene, I played a little with hp but it would usually keep her in a stunlocked state
yea it crashes when i play with values like the arouse one, though i did find it weird because the crash happens like this
change arouse value from 0 to 1
open gallery
crash
weird right? like gallery should be a separate instance unaffected by that value i'd think, but it's probably getting fucked in a way i don't understand

and about respawning after the h-scene, i've got a few ideas you can try exploring in code since you know how to explore and understand code
first
it's funny because i found out some weird bug unrelated to your tool
while naked, if you press pause just before the grab moves to the stage where you can only escape by attacking, the censor value stays at 0 because you can still see the sprites, now, the thing is
if you do this with noppera bo, the one that steals your face if you're clothed, the game... bugs out
this happens
the CG changes when i press jump, and you can even hear me jumping as if i could still move
however i think i can't move, only jump
View attachment MRBUG.mp4
















second idea
try exploring how the incuffly scene works? since you do NOT die on that one

third idea
exploring what the game does when you die by an attack, but if an enemy grabs you before the collapse animation finishes the player regains 1hp and can get either raped or escape
the player technically revives

i'm sorry i know this is probably not much help and maybe you've already tried exploring some of that stuff, but it's the only thing i can think of rn, if i find something else i'll report back

EDIT:
here's an idea
you know how you've made the game trigger alt scenes?
well, what if you make every single enemy trigger the incuffly's h scene but make it so that it shows their cg, just like the alts show different cgs, the ones you tell it, this way you keep incuffly h scene logic causing damage instead of death?
 
Last edited: