Agree, it seems to be very usefull feature right now. The example of it can be the purpose of creating high-rated model, where I do need several specific options (like legs and arms thickness, tallness etc), and I want the autorating profile to help me with them namely: I dont care about hands/feet size, any will do, but those values will affect the rating. And so, when I meet the girl I like, I would like to update my current autorating profile with all the values from her. It can be done manually, by creating the monkey custom json with all the ratings, screening/papering it somewhere and creating the new profile manually ingame, but it seems quite boring =)
I would suggest this can be solved by modders (I'm not that smart) in such a way:
When the new girl arrives, profile [current profile] rating file is automatically created (and placed somewhere, saying, with guest_last_... .json). Then [new] profile is created based on [current]. All the profile features I've marked important (all those features should be stated in some separate file, one set for each of 10 groups) are copied from the [game] profile (created in-game normally and set in-game as a autorating profile). All the minor features are being coping from [current] profile. Then [new] profile should be loaded and applyed in-game.
For inspiration, here is the python code for reading the profile.png options (not perfect =):
Python:
# -*- coding: utf-8 -*-
"""
Created on Fri Apr 28 12:15:48 2023
@author: V
"""
# import os
import pprint
game_save_folder = 'C:\\Users\\V\\Documents\\TValle Games\\Some Modeling Agency\\' #check this path and insert yours!
game_chars_folder = game_save_folder+ 'Characters\\v08\\'
game_profile_folder = game_save_folder+ 'Profiles\\v08\\'
#filename = game_chars_folder+ 'Antoinette Cody.png' #check this path and insert yours!
filename = game_profile_folder+ 'SlimBusty_MedEasy.png' #check this path and insert yours!
# chunk generator
def chunk_iter(data):
total_length = len(data)
end = 4
while(end + 8 < total_length):
length = int.from_bytes(data[end + 4: end + 8], 'big')
begin_chunk_type = end + 8
begin_chunk_data = begin_chunk_type + 4
end = begin_chunk_data + length
yield (data[begin_chunk_type: begin_chunk_data],
data[begin_chunk_data: end])
with open(filename, 'rb') as fobj:
data = fobj.read()
# check signature
assert data[:8] == b'\x89\x50\x4E\x47\x0D\x0A\x1A\x0A'
print("-" * 80, "chunks of: %s" % filename, "-"*80, sep='\n')
for chunk_type, chunk_data in chunk_iter(data):
print("chunk type: %s" % chunk_type.decode())
if chunk_type == b'le.C': #for character data
charChunkData = chunk_data.decode()
# charChunkData = charChunkData[:100]
# print("--chunk data:", chunk_data.decode())
if chunk_type == b'lePo': #for profile
profileChunkData = chunk_data.decode()
# print("--chunk data:", chunk_data.decode())
if chunk_type == b'iTXt':
print("--chunk data:", chunk_data.decode())
elif chunk_type == b'tEXt':
print("--chunk data:", *chunk_data.decode('iso-8859-1').split('\0'))
prof = profileChunkData[len("rtraitData"):] #Me was lazy ;P
import json
prof_d = json.loads(prof)
pprint.pp(prof_d)
You can read the marks (interpretations) in-game with monkey custom mods json (stored in \SMA 0.9.8c\BepInEx\config\Monkey\Mods\
myCustom_doityourself.json) like this (dont forget to color and bold the caption for tits size!):
JSON:
{
"Name": "<color='#FFFAF0'>Face</color> <color='red'>Anger</color> Gain",
"Type": "Enum",
"Level": 3,
"Path": [
"<MainFemaleCharacter>/Infos/Interpretaciones",
"InterpretadorDeFemales",
"interpretacion/interpretacionDeFacialSkin/difficulty/anoyanceGain"
]
}
(read monkey's manual for details)
Well, it seems to work similar to BH alternative genes, but not touching the girls directly - only the autoratings, which, I belive, can help a lot in testing strategies and speed up the process, almost without cheating =)
Me really want at least profile-dump feature for the current model, please point me in case it is already realized and I've missed it =)