NeonSelf

Member
Dec 3, 2019
236
374
Seems like a bug:

If I offer friendsip\crush relations to a prisoner in the dungeon - all reward\punishment options diappear. I even have to move her to my room for sex, because its "more private". And there is no way to change it back. And yeah, she is still living in the dungeon, but somehow her prison cell its not private anymore...

Seems like there should be proper master-slave relationship instead. Because even after having sex with her (in prisoner relationship) I get negative reactions to Flirty\Fetishy compliments. Or slapping her ass in tease options, which is funny, because when I punish her by slapping ass - she gets horny and increases affection...
 
Last edited:
  • Like
Reactions: Velvet Gene

NeonSelf

Member
Dec 3, 2019
236
374
Another bug happened when the shy guard was kissing me in the plalace cooridor, after I replied to her quest.
Damn this quest is really annoying, triggers every time i go through the corridor...

```
I'm sorry, but an uncaught exception occurred.

While running game code:
File "game/script.rpy", line 30111, in script call
call eventtracker from _call_eventtracker_19
File "game/script.rpy", line 42680, in script
show actor1 at zooback
File "game/script.rpy", line 42680, in <module>
show actor1 at zooback
NameError: name 'zooback' is not defined

-- Full Traceback ------------------------------------------------------------

Full traceback:
File "game/script.rpy", line 30111, in script call
call eventtracker from _call_eventtracker_19
File "game/script.rpy", line 42680, in script
show actor1 at zooback
File "E:\h games\LustKingdom-1.17.03-pc\LustKingdom-1.17.03-pc\renpy\ast.py", line 1408, in execute
show_imspec(self.imspec, atl=getattr(self, "atl", None))
File "E:\h games\LustKingdom-1.17.03-pc\LustKingdom-1.17.03-pc\renpy\ast.py", line 1367, in show_imspec
at_list = [ renpy.python.py_eval(i) for i in at_list ]
File "E:\h games\LustKingdom-1.17.03-pc\LustKingdom-1.17.03-pc\renpy\ast.py", line 1367, in <listcomp>
at_list = [ renpy.python.py_eval(i) for i in at_list ]
File "E:\h games\LustKingdom-1.17.03-pc\LustKingdom-1.17.03-pc\renpy\python.py", line 1092, in py_eval
return py_eval_bytecode(code, globals, locals)
File "E:\h games\LustKingdom-1.17.03-pc\LustKingdom-1.17.03-pc\renpy\python.py", line 1085, in py_eval_bytecode
return eval(bytecode, globals, locals)
File "game/script.rpy", line 42680, in <module>
show actor1 at zooback
NameError: name 'zooback' is not defined

Windows-10-10.0.19045 AMD64
Ren'Py 8.0.3.22090809
1.17.03
Wed Feb 22 03:03:27 2023
```
 
  • Like
Reactions: Velvet Gene

NeonSelf

Member
Dec 3, 2019
236
374
v1.17.03

I've just seen script.rpy and hope it was generated, not programmed like that (I'm a C# programmer, not python). Instead of using indexed arrays, there is a copypaste code of else-ifs. But in case it was made like that - it will be a real pain to replace hundreds of copies of a single line to make any small change in it.

For example, here colors should be stored in an array and taken by index from that array, insead of repeating them manually in 300 lines (this code should collapse to something like 10 lines max, and it will be alot easier to look for bugs):
Code:
if sexnumber == 1:

            if random == 1:

                $ npc1 = Character("[npc1_name] [npc1_surname]", color="#44AC2D")

            elif random == 2:

                $ npc1 = Character("[npc1_name] [npc1_surname]", color="#D62020")

            elif random == 3:

                $ npc1 = Character("[npc1_name] [npc1_surname]", color="#D82DBE")

            elif random == 4:

                $ npc1 = Character("[npc1_name] [npc1_surname]", color="#000000")

            elif random == 5:

                $ npc1 = Character("[npc1_name] [npc1_surname]", color="#6F1E62")

            elif random == 6:

                $ npc1 = Character("[npc1_name] [npc1_surname]", color="#CC9520")

            elif random == 7:

                $ npc1 = Character("[npc1_name] [npc1_surname]", color="#15D8C7")

            elif random == 8:

                $ npc1 = Character("[npc1_name] [npc1_surname]", color="#1538D8")

            elif random == 9:

                $ npc1 = Character("[npc1_name] [npc1_surname]", color="#AA4CCA")

            elif random == 10:

                $ npc1 = Character("[npc1_name] [npc1_surname]", color="#828282")

            elif random == 11:

                $ npc1 = Character("[npc1_name] [npc1_surname]", color="#45DA47")

            elif random == 12:

                $ npc1 = Character("[npc1_name] [npc1_surname]", color="#4F4F4F")

            elif random == 13:

                $ npc1 = Character("[npc1_name] [npc1_surname]", color="#7A1515")

            else:

                $ npc1 = Character("[npc1_name] [npc1_surname]", color="#4C798B")

        elif sexnumber == 2:

            if random == 1:

                $ npc2 = Character("[npc2_name] [npc2_surname]", color="#44AC2D")

            elif random == 2:

                $ npc2 = Character("[npc2_name] [npc2_surname]", color="#D62020")

            elif random == 3:

                $ npc2 = Character("[npc2_name] [npc2_surname]", color="#D82DBE")

            elif random == 4:

                $ npc2 = Character("[npc2_name] [npc2_surname]", color="#000000")

            elif random == 5:

                $ npc2 = Character("[npc2_name] [npc2_surname]", color="#6F1E62")

            elif random == 6:

                $ npc2 = Character("[npc2_name] [npc2_surname]", color="#CC9520")

            elif random == 7:

                $ npc2 = Character("[npc2_name] [npc2_surname]", color="#15D8C7")

            elif random == 8:

                $ npc2 = Character("[npc2_name] [npc2_surname]", color="#1538D8")

            elif random == 9:

                $ npc2 = Character("[npc2_name] [npc2_surname]", color="#AA4CCA")

            elif random == 10:

                $ npc2 = Character("[npc2_name] [npc2_surname]", color="#828282")

            elif random == 11:

                $ npc2 = Character("[npc2_name] [npc2_surname]", color="#45DA47")

            elif random == 12:

                $ npc2 = Character("[npc2_name] [npc2_surname]", color="#4F4F4F")

            elif random == 13:

                $ npc2 = Character("[npc2_name] [npc2_surname]", color="#7A1515")

            else:

                $ npc2 = Character("[npc2_name] [npc2_surname]", color="#4C798B")

..............

It continues like this for another 200+ lines.

Should be something like this instead:
Code:
colors = [ "#44AC2D", "#D62020", "#D82DBE", "#000000", "#6F1E62", "#CC9520", "#15D8C7", "#1538D8", "#AA4CCA", "#828282", "#45DA47", "#4F4F4F", "#7A1515"]

    $ locals()[spawnhelp] = Character("[maid1_name]" "[maid1_surname]", color=colors[random])

PS: I'd like to help with refactoring, dont take it as an insult please.
 
Last edited:
  • Like
Reactions: Velvet Gene

Velvet Gene

Member
Game Developer
Apr 3, 2022
273
439
Seems like a bug:

If I offer friendsip\crush relations to a prisoner in the dungeon - all reward\punishment options diappear. I even have to move her to my room for sex, because its "more private". And there is no way to change it back. And yeah, she is still living in the dungeon, but somehow her prison cell its not private anymore...

Seems like there should be proper master-slave relationship instead. Because even after having sex with her (in prisoner relationship) I get negative reactions to Flirty\Fetishy compliments. Or slapping her ass in tease options, which is funny, because when I punish her by slapping ass - she gets horny and increases affection...
Right the first two things shouldn't be happening. I'll have to check it out and fix it.

As for the compliments and interactions, I'm still in the process of tweaking everything. Some interactions may not make sense, because I still haven't adjusted them for all possible situations in which they can happen. I'll look into it soon.

Thank you!
 
  • Like
Reactions: NeonSelf

Velvet Gene

Member
Game Developer
Apr 3, 2022
273
439
v1.17.03

I've just seen script.rpy and hope it was generated, not programmed like that (I'm a C# programmer, not python). Instead of using indexed arrays, there is a copypaste code of else-ifs. But in case it was made like that - it will be a real pain to replace hundreds of copies of a single line to make any small change in it.

For example, here colors should be stored in an array and taken by index from that array, insead of repeating them manually in 300 lines (this code should collapse to something like 10 lines max, and it will be alot easier to look for bugs):
Code:
if sexnumber == 1:

            if random == 1:

                $ npc1 = Character("[npc1_name] [npc1_surname]", color="#44AC2D")

            elif random == 2:

                $ npc1 = Character("[npc1_name] [npc1_surname]", color="#D62020")

            elif random == 3:

                $ npc1 = Character("[npc1_name] [npc1_surname]", color="#D82DBE")

            elif random == 4:

                $ npc1 = Character("[npc1_name] [npc1_surname]", color="#000000")

            elif random == 5:

                $ npc1 = Character("[npc1_name] [npc1_surname]", color="#6F1E62")

            elif random == 6:

                $ npc1 = Character("[npc1_name] [npc1_surname]", color="#CC9520")

            elif random == 7:

                $ npc1 = Character("[npc1_name] [npc1_surname]", color="#15D8C7")

            elif random == 8:

                $ npc1 = Character("[npc1_name] [npc1_surname]", color="#1538D8")

            elif random == 9:

                $ npc1 = Character("[npc1_name] [npc1_surname]", color="#AA4CCA")

            elif random == 10:

                $ npc1 = Character("[npc1_name] [npc1_surname]", color="#828282")

            elif random == 11:

                $ npc1 = Character("[npc1_name] [npc1_surname]", color="#45DA47")

            elif random == 12:

                $ npc1 = Character("[npc1_name] [npc1_surname]", color="#4F4F4F")

            elif random == 13:

                $ npc1 = Character("[npc1_name] [npc1_surname]", color="#7A1515")

            else:

                $ npc1 = Character("[npc1_name] [npc1_surname]", color="#4C798B")

        elif sexnumber == 2:

            if random == 1:

                $ npc2 = Character("[npc2_name] [npc2_surname]", color="#44AC2D")

            elif random == 2:

                $ npc2 = Character("[npc2_name] [npc2_surname]", color="#D62020")

            elif random == 3:

                $ npc2 = Character("[npc2_name] [npc2_surname]", color="#D82DBE")

            elif random == 4:

                $ npc2 = Character("[npc2_name] [npc2_surname]", color="#000000")

            elif random == 5:

                $ npc2 = Character("[npc2_name] [npc2_surname]", color="#6F1E62")

            elif random == 6:

                $ npc2 = Character("[npc2_name] [npc2_surname]", color="#CC9520")

            elif random == 7:

                $ npc2 = Character("[npc2_name] [npc2_surname]", color="#15D8C7")

            elif random == 8:

                $ npc2 = Character("[npc2_name] [npc2_surname]", color="#1538D8")

            elif random == 9:

                $ npc2 = Character("[npc2_name] [npc2_surname]", color="#AA4CCA")

            elif random == 10:

                $ npc2 = Character("[npc2_name] [npc2_surname]", color="#828282")

            elif random == 11:

                $ npc2 = Character("[npc2_name] [npc2_surname]", color="#45DA47")

            elif random == 12:

                $ npc2 = Character("[npc2_name] [npc2_surname]", color="#4F4F4F")

            elif random == 13:

                $ npc2 = Character("[npc2_name] [npc2_surname]", color="#7A1515")

            else:

                $ npc2 = Character("[npc2_name] [npc2_surname]", color="#4C798B")

..............

It continues like this for another 200+ lines.

Should be something like this instead:
Code:
colors = [ "#44AC2D", "#D62020", "#D82DBE", "#000000", "#6F1E62", "#CC9520", "#15D8C7", "#1538D8", "#AA4CCA", "#828282", "#45DA47", "#4F4F4F", "#7A1515"]

    $ locals()[spawnhelp] = Character("[maid1_name]" "[maid1_surname]", color=colors[random])

PS: I'd like to help with refactoring, dont take it as an insult please.
Thank you for the suggestion! I wrote this part of the script like a year and a half ago, back when I was still learning the basics about Python and needed a cheap solution for testing. I was thinking of changing it at some point, but for some reason the idea of putting the colors in a list haven't crossed my mind!

I don't take this as an insult, by the way. I do everything for the game by myself, so any help or suggestion from others is of great help to me. Plus, I'm still learning on the go, so comments like this can genuinely help me improve.
 
  • Like
Reactions: NeonSelf

Velvet Gene

Member
Game Developer
Apr 3, 2022
273
439
Another bug happened when the shy guard was kissing me in the plalace cooridor, after I replied to her quest.
Damn this quest is really annoying, triggers every time i go through the corridor...

```
I'm sorry, but an uncaught exception occurred.

While running game code:
File "game/script.rpy", line 30111, in script call
call eventtracker from _call_eventtracker_19
File "game/script.rpy", line 42680, in script
show actor1 at zooback
File "game/script.rpy", line 42680, in <module>
show actor1 at zooback
NameError: name 'zooback' is not defined

-- Full Traceback ------------------------------------------------------------

Full traceback:
File "game/script.rpy", line 30111, in script call
call eventtracker from _call_eventtracker_19
File "game/script.rpy", line 42680, in script
show actor1 at zooback
File "E:\h games\LustKingdom-1.17.03-pc\LustKingdom-1.17.03-pc\renpy\ast.py", line 1408, in execute
show_imspec(self.imspec, atl=getattr(self, "atl", None))
File "E:\h games\LustKingdom-1.17.03-pc\LustKingdom-1.17.03-pc\renpy\ast.py", line 1367, in show_imspec
at_list = [ renpy.python.py_eval(i) for i in at_list ]
File "E:\h games\LustKingdom-1.17.03-pc\LustKingdom-1.17.03-pc\renpy\ast.py", line 1367, in <listcomp>
at_list = [ renpy.python.py_eval(i) for i in at_list ]
File "E:\h games\LustKingdom-1.17.03-pc\LustKingdom-1.17.03-pc\renpy\python.py", line 1092, in py_eval
return py_eval_bytecode(code, globals, locals)
File "E:\h games\LustKingdom-1.17.03-pc\LustKingdom-1.17.03-pc\renpy\python.py", line 1085, in py_eval_bytecode
return eval(bytecode, globals, locals)
File "game/script.rpy", line 42680, in <module>
show actor1 at zooback
NameError: name 'zooback' is not defined

Windows-10-10.0.19045 AMD64
Ren'Py 8.0.3.22090809
1.17.03
Wed Feb 22 03:03:27 2023
```
Right, I saw this bug being mentioned earlier. I fixed it and playtested it just to be sure. The bug shouldn't be happening in the next update, and also the event should stop repeating. I'll post the fixed vesrion later today!

Thank you for the feedback!
 
Last edited:

NeonSelf

Member
Dec 3, 2019
236
374
About improving your code further.

You should also try concatenating strings with indexes to remove else-ifs in names selection:
Code:
Instead of this:
    if sexnumber == 1:
            if random == 1:
                $ locals()[spawnhelp] = Character("[maid1_name]" "[maid1_surname]", color="#44AC2D")           
            .....
    elif sexnumber == 2:
        if random == 1:
            $ locals()[spawnhelp] = Character("[maid2_name]" "[maid2_surname]", color="#44AC2D")
            .....
    
Try using this:
    name = "[maid"+str(sexnumber)+"_name]"
    surname = "[maid"+str(sexnumber)+"_surname]"
    $ locals()[spawnhelp] = Character(name surname, color="#44AC2D")
 
  • Like
Reactions: Velvet Gene

Velvet Gene

Member
Game Developer
Apr 3, 2022
273
439
About improving your code further.

You should also try concatenating strings with indexes to remove else-ifs in names selection:
Code:
Instead of this:
    if sexnumber == 1:
            if random == 1:
                $ locals()[spawnhelp] = Character("[maid1_name]" "[maid1_surname]", color="#44AC2D")          
            .....
    elif sexnumber == 2:
        if random == 1:
            $ locals()[spawnhelp] = Character("[maid2_name]" "[maid2_surname]", color="#44AC2D")
            .....
   
Try using this:
    name = "[maid"+str(sexnumber)+"_name]"
    surname = "[maid"+str(sexnumber)+"_surname]"
    $ locals()[spawnhelp] = Character(name surname, color="#44AC2D")
Yep, already did something similar, just using the list of NPCs instead of the referral number! Really, it just goes to show I should've taken a second look at this part of the code a long time ago.
 

NeonSelf

Member
Dec 3, 2019
236
374
v1.17.04

Bug:
"Cum" button is missing in blowjob scene.

Thought:
"Go on" button makes no sense. The animation is already playing in a loop. Whats the purpose of this button?

Suggestion for sex interactions:
1 - ass-to-mouth has no effect. Currently girl arees to take it in her mouth after anal sex, like its just a regular blowjob. There should be some higher requirements for this, with some commentary to unusual smell\taste.
2 - It may be even better if hygiene state persists between sex scenes. So I could fuck my guard in the ass, and then ask prisoner for a blowjob, or ask for a blowjob contest in a court hearing. This "dirty dick" state should be reset by the next blowjob, manually in the bathroom or automatically every morning.
3 - Asking her to eat cum from her ass should also have some higher requirements than from other places.
 
  • Like
Reactions: Velvet Gene

Velvet Gene

Member
Game Developer
Apr 3, 2022
273
439
v1.17.04

Bug:
"Cum" button is missing in blowjob scene.

Thought:
"Go on" button makes no sense. The animation is already playing in a loop. Whats the purpose of this button?

Suggestion for sex interactions:
1 - ass-to-mouth has no effect. Currently girl arees to take it in her mouth after anal sex, like its just a regular blowjob. There should be some higher requirements for this, with some commentary to unusual smell\taste.
2 - It may be even better if hygiene state persists between sex scenes. So I could fuck my guard in the ass, and then ask prisoner for a blowjob, or ask for a blowjob contest in a court hearing. This "dirty dick" state should be reset by the next blowjob, manually in the bathroom or automatically every morning.
3 - Asking her to eat cum from her ass should also have some higher requirements than from other places.
Got the bug, will add it in the next version.

I added the "go on" button, so that you don't have to command the NPC to keep sucking you a certain way every time. For example, when you click on the deepthroat button while the NPC is already doing it, your character will encourage them and command them to keep going. If you click the go on button, the NPC keeps doing the same thing without any encouragement. It's basically there, so that the other options can give people a better feeling of control.
Now, I suppose you could say why not loop the whole thing and just let the pleasure counter rise by itself, but I personally find this kind of design philosophy to be exteremely boring in H-games. It's like watching a regular sex video with a HUD over it, whereas the fun of playing an H-game is that it's more interactive.

As for the suggestions, I am planning on adding these types of comments in the future, but I'll probably get around to it, when I start adding more smell fetish stuff into the game.
 
  • Like
Reactions: NeonSelf

NeonSelf

Member
Dec 3, 2019
236
374
For example, when you click on the deepthroat button while the NPC is already doing it, your character will encourage them and command them to keep going. If you click the go on button, the NPC keeps doing the same thing without any encouragement. It's basically there, so that the other options can give people a better feeling of control.
Then I think there should be some options for loving\degrading comments to encourage NPC, so it gives more flavor to the same scene. Like "You are doing great babe, I'm already close"\"Keep sucking like that, bitch, I dont have much time".
Ofcourse it will affect your relations depending on her kinks.
 

Velvet Gene

Member
Game Developer
Apr 3, 2022
273
439
Then I think there should be some options for loving\degrading comments to encourage NPC, so it gives more flavor to the same scene. Like "You are doing great babe, I'm already close"\"Keep sucking like that, bitch, I dont have much time".
Ofcourse it will affect your relations depending on her kinks.
Good idea! I think I might add it at some point, but right now it's probably better that I focus on adding the rest of the sex scenes and then start fleshing them out some more.
 
  • Like
Reactions: NeonSelf

Bloodly

Active Member
Feb 27, 2019
621
478
Hey folks,
Made a compressed Version, to unzip you need !

Original size: 669MB
Compressed size Q90: 129MB

PC = / Pixeldrain

v1.17
The GoFile link says 'this file does not exist'. Pixeldrain still works.

EDIT: There's errors when visiting people on the Wall Of Shame.

Question: NPCs have Affection, Lust, and Obsession. What is obsession meant to control? Actually, if they all relate to each other, could you go through all of them?

Hmm. Max taxes is 6000. Education 1, military 1, whorehouse 1, sports 1, art 1. 5000 spent total Somehow this result is spending as much as we earn. Switching to military 2 means I'm losing 1000 a day. Something is wrong with the adding up here.
 
Last edited:
  • Like
Reactions: Velvet Gene

Velvet Gene

Member
Game Developer
Apr 3, 2022
273
439
The GoFile link says 'this file does not exist'. Pixeldrain still works.

EDIT: There's errors when visiting people on the Wall Of Shame.

Question: NPCs have Affection, Lust, and Obsession. What is obsession meant to control? Actually, if they all relate to each other, could you go through all of them?

Hmm. Max taxes is 6000. Education 1, military 1, whorehouse 1, sports 1, art 1. 5000 spent total Somehow this result is spending as much as we earn. Switching to military 2 means I'm losing 1000 a day. Something is wrong with the adding up here.
Thank you for mentioning the error. Does it happen in the compressed version or the regular one? I've noticed the compressed link is for version 1.17.00 which is pretty outdated by this point and may contain some old errors that have already been resolved. I'll still check the Wall of Shame just in case, though.

To answer your question:

Affection is how much the character likes you and is the baseline for determining if they agree to do anything with you. It's used for most interaction with the NPCs but has a much higher value requirement for success than Lust and Obsession.

Lust is how lewd and horny the character is at all times. It makes it easier to have characters agree to do sexual stuff with you. It also alters the characters' reactions to sexual interactions (for example, a lustful character will be more likely to propose having sex to you, or have sex in public).

Obbsession is how dedicated a character is to you. It makes them more obedient, which means that if, for example, the character has low lust but high obedience they will still accept your sexual advances, despite their lust not being adequate. The stat has the lowest value requirements out of all three, meaning obsessed characters are the easiest to convince to do anything with you.

Currently obsession is mainly used in interactions with prisoners, to determine their obedience towards the player and to start a master / slave relationship with them. In the future I plan to extend the sex slave relationship to people regular NPCs as well.
 

rot1122

Member
Donor
Nov 20, 2017
238
1,605
The GoFile link says 'this file does not exist'. Pixeldrain still works.

EDIT: There's errors when visiting people on the Wall Of Shame.

Question: NPCs have Affection, Lust, and Obsession. What is obsession meant to control? Actually, if they all relate to each other, could you go through all of them?

Hmm. Max taxes is 6000. Education 1, military 1, whorehouse 1, sports 1, art 1. 5000 spent total Somehow this result is spending as much as we earn. Switching to military 2 means I'm losing 1000 a day. Something is wrong with the adding up here.
Yeah, the GoFile Links expire after a certain time if noone uses them. The Version is also outdated, there have been a few bugfixes since then, I'll update now

Edit: Updated, this time also with mac version
 
Last edited:
  • Like
Reactions: Velvet Gene
3.80 star(s) 22 Votes