TotalFluke

Member
Game Developer
Aug 24, 2021
496
1,194
219
(2) idea to run mod-script from py: could I add a new flag to world, companion-mod checks on save_load() if the flag is there, checks a file written by py and executes if an item in that file matches? then I have the mod add a bogus transaction (or another persistant save-object) when it has run and the next time py is run, I remove the file and the bogus transaction... or would something like that create problems (mostly with your save-parser being unable to make sense of flag or bogus transaction)?

re: finding pot_father-entries by personID

(3) that's one more loop (person_relations -> relations -> persons) so I'll just go person_relations -> persons and filter along the way (check gender, skip if male, then loop through flags for pot_father_list) /solved (for now)

re: orphaned pregnancy/relation

(5) removed person ID is 224, so rather late, I guess... sister is ID 230 /fyi

re: skill-calculation/salary

(8) I was hoping it'd be easy like sum(stat * stat_weight). but I'll have a gander, maybe simplify the calc for my needs (my idea is to loop through all persons, calc their skill and salary, then return a list with the 10 best candidates for the job with their approx min_salary) /solved (for now)

re: sister suggesting potential employees

(S1) sis.canShowUp() ? mySuggestion : backup
it'd also cut down on the amount of suggestions... she keeps bringing me potential singers, but I have as many singers as waitresses... so it's a bit odd


(S2) it is cheating, sure, but it'd make more sense. cause sis keeps suggesting people she knows nothing about and has no opinion on. but then skip adjusting the likes and just throw in a medium opinion and maybe a bit of knowledge (like 2 relevant stats)?


(S2.2) I can see how keeping the system running adds inefficency. buuut (a cute butt (insert peach-emoji here)) during char-creation, you could compare certain values in opinionlists and just make someone be friends. the new person poofs into existance and they already have 2 or 3 friends instead of starting from 0, then let that develop the usual way?
2. Yeah that's going to be way too much work. I'm not sure what's involved in embedding a Python interpreter into C# or calling out to a shell script which then requires having to configure the location. This is the type of thing that also raises malware red flags. If you explain what you are trying to do maybe there's a way to do it within the TFL code.

8. If you just want a rough estimate of job skill, use the formulas in the jobs.txt file. For example for waitress, the formula is "service:0.7,lewd:0.1,attract:0.1,endu:0.1". This means that you take their service skill multiply it by 0.7, the lewdness multiplied by 0.1, and their endurance multiplied by 0.1. (I skipped the attract value cause you won't have access to it). Add them all up. Then take their opinion of that job (in the case of waitress it's "service_work") and multiply it by 7 and add it. And then take the job experience (this is in a flag called jt_waiter_exp) take the square root and multiply that by 2 and add it. That should be close enough. Also you probably need to make sure that they qualify for the job (age, gender and college degree if necessary).

S1. She's going to pick a random job that you have open. You are overthinking this. She's not your recruiter that's going to be finding peope you need. She's just trying to help. She runs into someone that she thinks you could hire. Its a cheat that was put in because people complained that they had too much trouble finding good workers.

S2.2. Yes, I could do that. But I don't like it. There's thousands of people in the town, most of which are not represented in the game. They can have some friends that are not represented in the game. I like how things are very organic. Like running into 2 people that are hanging out together and I wonder how they connected. I find that interesting. Having two people being randomly connected at the start of the game with no story behind it, doesn't fit with that.
 
  • Like
Reactions: HRF94

HRF94

Newbie
Oct 13, 2023
89
69
93
(2) idea to run mod-script from py: could I add a new flag to world, companion-mod checks on save_load() if the flag is there, checks a file written by py and executes if an item in that file matches? then I have the mod add a bogus transaction (or another persistant save-object) when it has run and the next time py is run, I remove the file and the bogus transaction... or would something like that create problems (mostly with your save-parser being unable to make sense of flag or bogus transaction)?
2. Yeah that's going to be way too much work. I'm not sure what's involved in embedding a Python interpreter into C# or calling out to a shell script which then requires having to configure the location. This is the type of thing that also raises malware red flags. If you explain what you are trying to do maybe there's a way to do it within the TFL code.
(2) this whole py in tfl goes back to that:

jobs:
making someone umemployed is easy (in person change jobID to -1), but replacing the jobID with a different one (eg changing to nurse) the new person doesn't show up at the job.
For the job stuff, (like with relations) there's some complexity between various objects that will be hard to get right. For jobs it's better to call the built in &new_job_for_char function which will handle all these dependencies. So that's probably best done in game via the console rather than via save file editing.
what I'm thinking of is to have the option to change a persons job (or a jobs person) in my py, but since you said it's rather complicated, I want to defer the actual changes to your tfl-function &new_job_for_char and now I'm trying to figure out how to run your ingame code the next time the save is loaded.
since my py is already creating files (backup of save), my idea would be
(a) create a new file with the relevant items for a companionmod to run, but only once/when that specific save is loaded
or to
(b) modify the save in such a way that an already built in function does the work, such as through a scheduleFunc or a flag in world. I can collect all active IDs and find an unused pair to avoid overlap (either lowest unused or based on highest active ID +1/+2)

(b) would be less intrusive (and I don't have to make a companionmod), but my main concern is that I somehow fuck up the save/gamestate
but in general, I want the work to be on my end, not yours. I'm just trying to make sure I don't break shit
also, the same would eventually apply for relations, depending on how much I can fuck around with those, but I'm still testing what I can do manually there without breaking everything

8. If you just want a rough estimate of job skill, use the formulas in the jobs.txt file. For example for waitress, the formula is "service:0.7,lewd:0.1,attract:0.1,endu:0.1". This means that you take their service skill multiply it by 0.7, the lewdness multiplied by 0.1, and their endurance multiplied by 0.1. (I skipped the attract value cause you won't have access to it). Add them all up. Then take their opinion of that job (in the case of waitress it's "service_work") and multiply it by 7 and add it. And then take the job experience (this is in a flag called jt_waiter_exp) take the square root and multiply that by 2 and add it. That should be close enough. Also you probably need to make sure that they qualify for the job (age, gender and college degree if necessary).
(8) that should be close enough for a start. cheers!

(S1) change it so sister doesn't always suggests "friends" (see S2) for jobs. instead have her bring them to the bar and she mentions they are looking for a job and THEN you can agree (also, remove malus from turning down interview)
S1. Not a bad idea but early on the bar is open only during one period and the sister may be busy working herself. I adds a lot of complications. It may work in some cases, but the current process would still need to exist as a backup.
(S1) sis.canShowUp() ? mySuggestion : backup
it'd also cut down on the amount of suggestions... she keeps bringing me potential singers, but I have as many singers as waitresses... so it's a bit odd
S1. She's going to pick a random job that you have open. You are overthinking this. She's not your recruiter that's going to be finding peope you need. She's just trying to help. She runs into someone that she thinks you could hire. Its a cheat that was put in because people complained that they had too much trouble finding good workers.
(S1) don't get me wrong, I understand why it's there. but I'm at a point in the game where I barely break even and she keeps suggesting these pretty faces and I can't quite afford them right now. but when I turn them down, at whichever point, suddenly they don't like me... and sis does feel like a headhunter I can't turn off ;)
and also, without king tuts mod, there's no real way to go back to them and say "hey, I can afford you now, lets fuck have an interview".
hence my request to either remove the malus when turning them down (maybe only when sis initially suggests them? keep malus when turning down during/after interview), make sis suggest fewer people or let us turn headhunter off (and on again, once needed)

new:
(1) these are all entries I know so far (in order):
You don't have permission to view the spoiler content. Log in or register now.

are there any more that are to be expected (such as children)? if so, could you tell me where they will be?
 
Last edited:

TotalFluke

Member
Game Developer
Aug 24, 2021
496
1,194
219
(2) this whole py in tfl goes back to that:



what I'm thinking of is to have the option to change a persons job (or a jobs person) in my py, but since you said it's rather complicated, I want to defer the actual changes to your tfl-function &new_job_for_char and now I'm trying to figure out how to run your ingame code the next time the save is loaded.
since my py is already creating files (backup of save), my idea would be
(a) create a new file with the relevant items for a companionmod to run, but only once/when that specific save is loaded
or to
(b) modify the save in such a way that an already built in function does the work, such as through a scheduleFunc or a flag in world. I can collect all active IDs and find an unused pair to avoid overlap (either lowest unused or based on highest active ID +1/+2)

(b) would be less intrusive (and I don't have to make a companionmod), but my main concern is that I somehow fuck up the save/gamestate
but in general, I want the work to be on my end, not yours. I'm just trying to make sure I don't break shit
also, the same would eventually apply for relations, depending on how much I can fuck around with those, but I'm still testing what I can do manually there without breaking everything
Yes, adding a ScheduledFunc will work, it's a bit tricky as you need to add it to an ScheduleList that already exists or create a new one, in which case you then need to add it to the Scheduler. But yes, that should work. And you can pick ids that are no longer used (either holes from earlier or higher than the highest one). The game is smart enough to find the highest one to tell where it left off. But yes, if you do that you can have some function execute shortly after the game starts. It won't be immediate as the functions for the current tick already ran when the save was made, so the earliest it can be will be the next period.

(S1) don't get me wrong, I understand why it's there. but I'm at a point in the game where I barely break even and she keeps suggesting these pretty faces and I can't quite afford them right now. but when I turn them down, at whichever point, suddenly they don't like me... and sis does feel like a headhunter I can't turn off ;)
and also, without king tuts mod, there's no real way to go back to them and say "hey, I can afford you now, lets fuck have an interview".
hence my request to either remove the malus when turning them down (maybe only when sis initially suggests them? keep malus when turning down during/after interview), make sis suggest fewer people or let us turn headhunter off (and on again, once needed)
There's no penalty for refusing to interview your sister's recommendation. But the best option usually is to go thru the interview and learn as much as you can from them. Just keep asking questions until they get tired and leave. That's a -4 which is not a big deal and usually worth finding out as much as you can from them.

new:
(1) these are all entries I know so far (in order):
You don't have permission to view the spoiler content. Log in or register now.

are there any more that are to be expected (such as children)? if so, could you tell me where they will be?
Child is the only one that's missing from that list. Don't assume the order is fixed. In some cases I have changed it if it makes reading the data in easier.
 
  • Like
Reactions: HRF94

HRF94

Newbie
Oct 13, 2023
89
69
93
re: my understanding of save structure
Child is the only one that's missing from that list. Don't assume the order is fixed. In some cases I have changed it if it makes reading the data in easier.
well, I keep breaking the saves (for whatever reason, casting the wantschild/wantscondom fields from pregnancy to float and back to string for saving broke it. I remember it being the trailing .0, but now I can't recreate it manually... but anyway...), so being able to diff my creation vs original is quite helpful and since apparantly "small" changes brick saves, I'm vewy vewy careful :3

I might come back for the scheduledfunc to you, depending if my brain is able to parse your sauce over the weekend ;)
dumb.jpg
 

Not YrBroom

Member
Feb 9, 2023
193
239
134
Is there any reason why the files have different sizes on the two sites? Mega is showing 8.47GB while Pixeldrain shows 9..09GB.
I noticed that as well. It's the same file uploaded to both sites. Here's how the file looks on my computer:

1760768511699.png

So Mega is actually measuring in "gibibytes" (as is Windows) and pixeldrain is using true gigabytes.
 
  • Like
Reactions: Sparkle47

Sparkle47

New Member
Dec 8, 2024
11
5
71
I noticed that as well. It's the same file uploaded to both sites. Here's how the file looks on my computer:

View attachment 5352948

So Mega is actually measuring in "gibibytes" (as is Windows) and pixeldrain is using true gigabytes.
Thanks. I was just checking in case the files had been corrupted/infected.
I have some issues downloading these as they are over the "free" daily limit size, but I often get stuck at 34% and they go no higher no matter how long I keep trying to download them.
 

Not YrBroom

Member
Feb 9, 2023
193
239
134
Thanks. I was just checking in case the files had been corrupted/infected.
I have some issues downloading these as they are over the "free" daily limit size, but I often get stuck at 34% and they go no higher no matter how long I keep trying to download them.
I did what I could to keep the file size down, including resizing images that were larger than necessary. (I also recropped some, notably from the old and dstu sets, to fix aspect ratio issues while I was at it.)
 

Rnmjjj

New Member
Sep 29, 2023
3
0
134
why does using the command to change the image for a specific character keep showing "not valid"?
 

ThiagoL0rD

New Member
Jun 16, 2024
12
1
22
Is it possible to have more than 53 employees, because when I try to add more Locker Rooms, it doesn't appear, I currently have 5
 
3.70 star(s) 41 Votes