4.10 star(s) 153 Votes

elcamino101

Newbie
Jan 23, 2019
18
59
There are a few links to some helpful decompiley things in this thread, and I was curious, so this happened.

Some Rasgos Document, or A Field Guide To Personality 1.0

This guide will be using the Monkey English translations for simplicity, even if the Save Editor ones are a bit more accurate. For clarity, this is a list of the traits where they differ so there's less confusion depending on where you want to go edit them.

Adaptabilty = Open to Change
Confidence = Self-confidence
Conformist = Normative Awareness
Shyness = Social Daring
Stability = Emotional Stability

Part 1: Scoring
Each trait is essentially two scores in one: for instance, Privacy is both a score for Open and Discreet. In general terms, each trait and be thought of as a Low score and a High score. So this guide won't refer to things like Open and Discreet by those names, instead they will be Low Privacy and High Privacy. This is because the game calculates them in such a way that only one or the other can be nonzero.

Fundamentally, both scores go up the farther away they are from the middle point, i.e. 0.5, in their direction only. At 0.5 Privacy, Low Privacy and High Privacy are both 0. At 0 Privacy, Low Privacy is 1. At 1 Privacy, High Privacy is 1. At 0.25 Privacy, Low Privacy is 0.5 and High Privacy is 0. At 0.8 Privacy, Low Privacy is 0 and High Privacy is 0.6, and so on.

Part 2: Factors contributing to Personality scores
Each personality score is derived from a combination of traits and a bonus from the current active bars. First a rundown of what this guide will label the bars:

Arousal: small red bar.
Bored (or disappointed): the grey bar.
Consent: The highest level of either green bar.
DesHielo ("thawing"): a hidden bar that starts at 0 and goes up the longer the scene goes on until maxing out at 100/100. Human Trait 'FacilidadParaDesHielar' controls the speed of the rise.
Happy (Alegria): a hidden bar. Generally starts at 30/100. Goes up when the model's favorite spots are interacted with, down when the unfavorite spots are interacted with (or something like that).
Pain: the purple bar.
Rage: the red bar.

Using BetterExperience will let you monitor the hidden bar values.
When referring to the bars below with 'empty' in front, i.e. "Empty Rage", this means the unfilled part of the bar is used for scoring.

The game tends to classify the scores in two ways:

Very Low: 0 to 0.2
Low: 0.2 to 0.4
Medium: 0.4 to 0.6
High: 0.6 to 0.8
Very High: 0.8 and up
i.e. for qualifications for sending to other agencies

Other checks tend to use a simple yes/no boolean where the cutoff is 0 to 0.375 (i.e. 3/8) for no and 0.375 to 1 for yes, which is functionally "Medium or higher" with a little extra wiggle room.

Part 3: Deriving Personality scores
These calculations generally result in a value between 0 and 1 but can go over 1 with enough contribution from the bars. Because the bar % filled values are often cubed or to the 4th power, generally speaking only very full or very empty bars can influence the calculations. Every model temporarily activates the Perverted personality type if they didn't already have it during an orgasm because the bar's influence alone is enough to hit the cutoff (1.0 * 1.0 * 3/8) but otherwise no combination of bars can do that without some help from the traits.

Exhibitionist: 50% Low Conformist + 50% High Shyness + (Arousal^3 * 3/16)

Extrovert: 80% High Warmth + 13.33% High Sensitivity + 6.67% High Stability + (Happy^2 * 1/8)

Honest: 66.67% Low Vigilance + 33.33% High Confidence + (DesHielo^3 * 3/40) + (Empty Bored^3 * 3/40)

Optimist: 50% High Adaptibility + 50% High Confidence + (Happy^2 * 1/8)

Perverted: 70% Low Privacy + 30% High Shyness + (Arousal^2 * 3/8)

Respectful: 33.33% Low Vivacity + 33.33% High Perfectionist + 33.33% High Privacy + (DesHielo^4 * 3/32) + (Empty Bored^4 * 3/32) + (Empty Rage^4 * 3/32)

Rude: 40% Low Sensitivity + 25% Low Stability + 15% High Dominance + (Rage^2 * 9/32)
yes, this doesn't add up to 100% in the code. It seems like the genetic factor contribution to Rude is intentionally capped at High.

Shy: 75% Low Shyness + 25% Low Confidence + (Pain^4 * 3/40)

Submissive: 100% Low Dominance + (Pain^2 * 3/16)

There is also a hidden personality trait:

Dishonesty: 66.67% High Vigilance + 33.33% Low Confidence + (Bored^2 * 1/4)

The higher a model's dishonesty, the higher the chance a model will change a true response to a complaint about being touched too hard/fast.

Part 4: Personality speech types
Traits and bars also influence how the model speaks. There are four different types, and the one with the highest evaluated score will be the one considered 'active'. This influences not just the word choices but also the chances of potential responses (for instance, you're probably not going to see a model ask if it's hot in here and strip down if "Horny" isn't on top).

The four types are Horny, Gentle, Rude, and Shy. Each score is rated 0 to 1 overall, with traits contributing 80% and bars contributing 20% to the total.

Horny Traits: 70% High Shyness + 20% Low Privacy + 10% High Warmth
Horny Bars: 75% Pleasure + 25% Arousal

Gentle Traits: 80% High Sensitivity + 10% Low Warmth + 10% Low Dominance
Gentle Bars: 25% Pleasure + 25% Happy + 50% Empty Rage

Rude Traits: 50% High Dominance + 40% Low Stability + 10% High Shyness
Rude Bars: 100% Rage

Shy Traits: 60% Low Shyness + 20% Low Warmth + 20% Low Dominance
Shy Bars: 66.67% Consent + 33.33% Pain

Part 5: Addendum
If this seems quite complex, there is some good news. You can basically ignore these Rasgo genes, because they don't actually have any implemented effects yet:

Abstraction (this is the Rasgo pragmatic vs imaginative one, not the TraitHumano one which affects 'looking at' related strengths and cooldowns)
Concern (safe vs preoccupied)
Tension (relaxed vs impatient)
Reasoning (concrete vs abstract)

These are all instanced, saved, and loaded but near as I can tell never referenced in any of the part of the code.
 
Last edited:

Thora

Member
Jan 2, 2018
340
1,045
There are a few links to some helpful decompiley things in this thread, and I was curious, so this happened.
...
Great work decompiling and interpreting the code.

A few notes...

The game tends to classify the scores in two ways:

Very Low: 0 to 0.2
...
All values in the save files are normalized to float [0..1]. The game uses special code converting between this representation and the game data (there are 30 types as of 9.2).

For example a 'red' color may be mapped from 0..1 to 0..255 internally using a simple lerp. But some types like enum and index have overloaded range. Trait humano will use the [0..0.05] as an enum index and lerp the rest. The remapping is complicated because the enums are not ordered from very low to very high.

TLDR - setting values in the save file may not give you the result you expect.

...
Each trait is essentially two scores in one: for instance, Privacy is both a score for Open and Discreet.
...
For some unknown reason, the dev created an entire intermediate layer (interpretation) using different terminology. This makes things difficult to follow and is likely the source of many profile issues we've been having. The important point is that only genes get saved, so I would recommend focusing on those to get the effect you want.

-T-
 

elcamino101

Newbie
Jan 23, 2019
18
59
All values in the save files are normalized to float [0..1]. The game uses special code converting between this representation and the game data (there are 30 types as of 9.2).

For example a 'red' color may be mapped from 0..1 to 0..255 internally using a simple lerp. But some types like enum and index have overloaded range. Trait humano will use the [0..0.05] as an enum index and lerp the rest. The remapping is complicated because the enums are not ordered from very low to very high.

TLDR - setting values in the save file may not give you the result you expect.
Yeah, it's defintely a weird mishmash between "true" floats and the converted enums/"lerp the rest of the range as a fallback validator" ones, but generally speaking in my observation the true floats are the ones where enums are derived later from the values. The Personality_Rasgo_*s are all true floats, because they only get used through at least one level of further processing.

For some unknown reason, the dev created an entire intermediate layer (interpretation) using different terminology. This makes things difficult to follow and is likely the source of many profile issues we've been having. The important point is that only genes get saved, so I would recommend focusing on those to get the effect you want.
I would say there are definitely some, uh, choices involved in things like 'abstraccion' being both a TraitHumano and a Rasgo (that do different things -- well, technically the TH abstraccion does something, and the Rasgo abstraccion is one of the 4 totally unimplemented Rasgos as far as I can tell), 'sensibilidad' being a Rasgo, a enum pain multiplier TraitHumano (called 'sensibilidadV2' admittedly, but yeesh) and also a factor in a bunch of part genes. And of course, one of my faves, 'calidez' being both a Rasgo and a PersonalidadRasgo of (of course) Sensibilidad again. Oh, and gotta make sure to keep your PersonalidadDinamica.Extrovertido, PersonalidadInfo.Extrovertido, PersonalidadInfo.Extroversion, PersonalidadData.Extroverted, and Personalidad.extroversionPorPersonalidad straight.

It does make for some adventurous source reading, that's for sure.
 
Last edited:

elcamino101

Newbie
Jan 23, 2019
18
59
More stuff for giggles:

Some GustoPor Document, or Chat Options Guide 1.0

So, there aren't a lot of chat options, but they do do things and it's not immediately obvious what they do or why. So here goes.

Part 1: Mechanics
The relevant genes involved here are TraitHumano_gustoPor* ones. These are enum-type floats in the saves, i.e.:
0 = normal
0.01 = high
0.02 = very high
0.03 = low
0.04 = very low

Each level has an equivalent score or strength number as follows:
Very low = 5 pts
Low = 12 pts
Medium = 25 pts
High = 55 pts
Very high = 100 pts

Each chat option has four parts:
1) A speech type with a target value
2) a bar and a value given for success calculations
3) a bar and a value given for failure calculations
4) a bar and a value given for bonus qualification

These are the speech types and their equivalent gustoPors:
normal = gustoPorNormales (normal)
timida = gustoPorTimidos (shy)
pedante = gustoPorPatanes (asshole)
confiada = gustoPorConfiados (confident)
pervertida = gustoPorPervertidos (horny)
mLady = gustoPorAutistas (yes, simping is literally autism in the SMA Videogamic Universe)
humilde = gustoPorHumildad (humility)

gustoPorIntelectuales also exists, but is not used by anything in 0.9.3.


So to bring it all in together as an example, the default "Hello, nice to meet you" greeting is set up like this:
1) normal = 15
2) concentToHero = 5
3) rabia = 1
4) arousal = 2

That means for a "good" result, the model needs to have a Medium gustoPorNormales because the target number is 15 and a Low score of 12 isn't high enough. On a success, the base value for a big green bar raise is 5, while on a failure the base value for a big red bar raise is 1. The bonus mechanic for making the target easier to hit will trigger if the arousal bar is already at least 2, but since this will never be 2 unless you've cheated it up first thing off with Monkey, it doesn't really do anything.

"Good" results are important because SMA will track whether a model liked your greeting or not and it seems to factor in whether or not you can proc a result from telling her how she looks afterwards.

The amount of bar raise depends not just on the value of 2 but also the value of 1. A small target number in 1) won't generate as many points as a larger target number in 1), even if the rewards in 2) are the same.

Part 2: y HOLA thar
Here is the full list of hello options:

  • Hello, nice to meet you:
    • Normal = 15, Consent = 5, Rage = 1, Arousal = 2
  • Hello bitch
    • Pedante = 75, Consent = 10, Rage = 40, Arousal = 2
  • What's up?
    • Confiada = 35, Consent = 10, Rage = 15, Arousal = 2
  • What's up, bitch
    • Confiada = 50 and Pedante = 70, Consent = 15, Rage = 50, Arousal = 2
  • Hello, How are you?
    • mLady = 15, Consent = 10, Rage = 10, Arousal = 2
  • Hello
    • Timida = 15, Consent = 4, Rage = 5, Arousal = 2
  • Hello, Good day
    • Humilde = 15, Consent = 4, Rage = 10, Arousal = 2
  • Need some extra money
    • Pervertida = 85, Consent = 25, Rage = 20, Arousal = 2
  • Just another whore
    • Pedante = 90, Consent = 15, Rage = 90, Arousal = 2
  • You look like such a slut
    • Pedante = 50 and Pervertida = 50, Consent = 20, Rage = 90, Arousal = 2
Part 3: You look...
The look options work the same way the hello options do.

  • Hideous!
    • Pedante = 100, Consent = 20, Rage = 20, Arousal = 2
  • Ugly.
    • Pedante = 50, Consent = 15, Rage = 15, Arousal = 2
  • Average.
    • Pedante = 25 and Normal = 12, Consent = 10, Rage = 5, Arousal = 2
  • Good.
    • Normal = 25 and Pedante = 5, Consent = 4, Rage = 5, Arousal = 2
  • Cute.
    • Timida = 25 and Humilde = 10, Consent = 8, Rage = 5, Arousal = 2
  • Very nice.
    • Normal = 12 and Confiada = 5, Consent = 6, Rage = 5, Arousal = 2
  • Beautiful.
    • Confiada = 25 and Normal = 5, Consent = 8, Rage = 5, Arousal = 2
  • So hot!
    • Confiada = 50 and Pervertida = 50, Consent = 10, Rage = 10, Arousal = 2
  • Like a goddess!
    • Confiada = 50 and mLady = 50, Consent = 15, Rage = 15, Arousal = 2
  • So fuckable!
    • Pervertida = 100 and Confiada = 25, Consent = 20, Rage = 25, Arousal = 2

Part 4: Hex editing tips
You may wish to goose the odds in your favor a little, so here's an example. These caps are from HxD but any capable hex editor will do.

You'll find the data at the back end of sharedassets0.assets:

hex1.png

Here's a sample edit.

hex2.png

Save and now the first option always succeeds and will award a nice bit of green bar.

It's always a good idea to backup the original file before hex editing.
 
Last edited:

Thora

Member
Jan 2, 2018
340
1,045
Some GustoPor Document, or Chat Options Guide 1.0
Excellent work! This is further than I was able to analyze, and will prove useful if ever I try my hand at fixing modding it.

Two points:
- modifying shared assets may create issues. I would suggest making a backup!
- TraitHumano internal enum isn't ordered properly. Did you confirm that very low is 0 and very high 0.04? Monkey does active remapping as otherwise you get the following internal order:

public enum HumanTraitScore
{
normal,
alto,
muyAlto,
bajo,
muyBajo
}


-T-
 

corsec600

New Member
Jul 31, 2020
1
0
Apologies if this has been asked, but if we change a girl while we're interviewing with the Monkey mod, is our rating of the girl applied to her original stats or the result of our modifications? If a short girl walks in, I make her tall, and rate her height a 10, does the game think I like short girls or tall?
 

Bazmanfoo

Newbie
Mar 8, 2020
61
30
Apologies if this has been asked, but if we change a girl while we're interviewing with the Monkey mod, is our rating of the girl applied to her original stats or the result of our modifications? If a short girl walks in, I make her tall, and rate her height a 10, does the game think I like short girls or tall?
from what I understand, you are ranking the edited girl. Not the original
 

reigan

Member
Sep 21, 2018
379
1,328
More stuff for giggles:

Some GustoPor Document, or Chat Options Guide 1.0

So, there aren't a lot of chat options, but they do do things and it's not immediately obvious what they do or why. So here goes.

Part 1: Mechanics
The relevant genes involved here are TraitHumano_gustoPor* ones. These are enum-type floats in the saves, i.e.:
0 = very low
0.01 = low
0.02 = medium
0.03 = high
0.04 = very high

Each level has an equivalent score or strength number as follows:
Very low = 5 pts
Low = 12 pts
Medium = 25 pts
High = 55 pts
Very high = 100 pts

Each chat option has four parts:
1) A speech type with a target value
2) a bar and a value given for success calculations
3) a bar and a value given for failure calculations
4) a bar and a value given for bonus qualification

These are the speech types and their equivalent gustoPors:
normal = gustoPorNormales (normal)
timida = gustoPorTimidos (shy)
pedante = gustoPorPatanes (asshole)
confiada = gustoPorConfiados (confident)
pervertida = gustoPorPervertidos (horny)
mLady = gustoPorAutistas (yes, simping is literally autism in the SMA Videogamic Universe)
humilde = gustoPorHumildad (humility)

gustoPorIntelectuales also exists, but is not used by anything in 0.9.3.


So to bring it all in together as an example, the default "Hello, nice to meet you" greeting is set up like this:
1) normal = 15
2) concentToHero = 5
3) rabia = 1
4) arousal = 2

That means for a "good" result, the model needs to have a Medium gustoPorNormales because the target number is 15 and a Low score of 12 isn't high enough. On a success, the base value for a big green bar raise is 5, while on a failure the base value for a big red bar raise is 1. The bonus mechanic for making the target easier to hit will trigger if the arousal bar is already at least 2, but since this will never be 2 unless you've cheated it up first thing off with Monkey, it doesn't really do anything.

"Good" results are important because SMA will track whether a model liked your greeting or not and it seems to factor in whether or not you can proc a result from telling her how she looks afterwards.

The amount of bar raise depends not just on the value of 2 but also the value of 1. A small target number in 1) won't generate as many points as a larger target number in 1), even if the rewards in 2) are the same.

Part 2: y HOLA thar
Here is the full list of hello options:

  • Hello, nice to meet you:
    • Normal = 15, Consent = 5, Rage = 1, Arousal = 2
  • Hello bitch
    • Pedante = 75, Consent = 10, Rage = 40, Arousal = 2
  • What's up?
    • Confiada = 35, Consent = 10, Rage = 15, Arousal = 2
  • What's up, bitch
    • Confiada = 50 and Pedante = 70, Consent = 15, Rage = 50, Arousal = 2
  • Hello, How are you?
    • mLady = 15, Consent = 10, Rage = 10, Arousal = 2
  • Hello
    • Timida = 15, Consent = 4, Rage = 5, Arousal = 2
  • Hello, Good day
    • Humilde = 15, Consent = 4, Rage = 10, Arousal = 2
  • Need some extra money
    • Pervertida = 85, Consent = 25, Rage = 20, Arousal = 2
  • Just another whore
    • Pedante = 90, Consent = 15, Rage = 90, Arousal = 2
  • You look like such a slut
    • Pedante = 50 and Pervertida = 50, Consent = 20, Rage = 90, Arousal = 2
Part 3: You look...
The look options work the same way the hello options do.

  • Hideous!
    • Pedante = 100, Consent = 20, Rage = 20, Arousal = 2
  • Ugly.
    • Pedante = 50, Consent = 15, Rage = 15, Arousal = 2
  • Average.
    • Pedante = 25 and Normal = 12, Consent = 10, Rage = 5, Arousal = 2
  • Good.
    • Normal = 25 and Pedante = 5, Consent = 4, Rage = 5, Arousal = 2
  • Cute.
    • Timida = 25 and Humilde = 10, Consent = 8, Rage = 5, Arousal = 2
  • Very nice.
    • Normal = 12 and Confiada = 5, Consent = 6, Rage = 5, Arousal = 2
  • Beautiful.
    • Confiada = 25 and Normal = 5, Consent = 8, Rage = 5, Arousal = 2
  • So hot!
    • Confiada = 50 and Pervertida = 50, Consent = 10, Rage = 10, Arousal = 2
  • Like a goddess!
    • Confiada = 50 and mLady = 50, Consent = 15, Rage = 15, Arousal = 2
  • So fuckable!
    • Pervertida = 100 and Confiada = 25, Consent = 20, Rage = 25, Arousal = 2

Part 4: Hex editing tips
You may wish to goose the odds in your favor a little, so here's an example. These caps are from HxD but any capable hex editor will do.

You'll find the data at the back end of sharedassets0.assets:

View attachment 2127187

Here's a sample edit.

View attachment 2127192

Save and now the first option always succeeds and will award a nice bit of green bar.
I'm happy for you, or sorry that happened, but I ain't reading all that. :BootyTime:
 

Iluha

Member
Mar 13, 2019
253
191
This is a good game just imagine you take say Xstoryplayer realistic woman and combine it with this game the end results could be better I dont know what do you guys think it can work as well
It is a pity that XSP is an abandoned, but relevant project. The mechanics and gameplay of XSP still looks quite decent. XSP has a lot of good ideas for SMA.
 
  • Like
Reactions: boomshawks

Thora

Member
Jan 2, 2018
340
1,045
from what I understand, you are ranking the edited girl. Not the original
Correct. Always rate the resulting model.

All appearance and personality sliders directly modifies the model genes which will be use by the genetic algorithm based on your ratings.

If you are using profiles, it's a good idea to press on the gear icon in the rating panel. This will run auto rating again and update any relevant rating for you.

-T-
 
  • Like
Reactions: Duanne442 and Iluha

elcamino101

Newbie
Jan 23, 2019
18
59
Excellent work! This is further than I was able to analyze, and will prove useful if ever I try my hand at fixing modding it.

Two points:
- modifying shared assets may create issues. I would suggest making a backup!
- TraitHumano internal enum isn't ordered properly. Did you confirm that very low is 0 and very high 0.04? Monkey does active remapping as otherwise you get the following internal order:
Good points, edited them into the doc.
 

manniakk

Newbie
Jul 20, 2018
93
395
The game is great but after spending some time it start to get way too repeating, so I install unity and start trying with some furniture. Is it possible to edit the scene and make the room a bit bigger?

I`m attaching the sofa in case someone want to have a casting couch in their game.
P.S. I did edit the model to make it a bit smaller so it will fit with the initial scene
 
Last edited:

Numbnutts

Newbie
Aug 7, 2018
68
82
Guys, wtf im dl SMA with Custom Poses feature and instal Monkey in to folder with SMA and start game, but when im open Monkey its not work, how i can fix it?
it's an old version the custom poses are already in the normal version of the game
 

manniakk

Newbie
Jul 20, 2018
93
395
Adding a chair so you can do even more stuff. Also adding the same sofa with some textures to make it look better.

For the newbies: you need latest monkey and you extract the archive in BepInEx\config\Monkey\Assets and then load the asset you want via monkey
 
Last edited:

Gabrieleon2811

New Member
May 28, 2022
7
2
es posible descargar modelos 3d externos
como d.va al juego? es decir, que se pueden follar chicas hechas en 3d por programas externos?
 

qwertyuq123

Newbie
Dec 21, 2017
90
333
The game is great but after spending some time it start to get way too repeating, so I install unity and start trying with some furniture. Is it possible to edit the scene and make the room a bit bigger?

I`m attaching the sofa in case someone want to have a casting couch in their game.
P.S. I did edit the model to make it a bit smaller so it will fit with the initial scene
That's a start! I thought there's no furniture that could fit in those tiny room.

As for bigger room - no. It's is possible to remove walls and colliders to step into the darkness, but not move or scale, due to static geometry.

In theory, it is possible to remove some doors, and load another room, but it will require proper baked light, and proper light probes, otherwise everything will be too dark
 

Thora

Member
Jan 2, 2018
340
1,045
...
In theory, it is possible to remove some doors, and load another room, but it will require proper baked light, and proper light probes, otherwise everything will be too dark
You can download and try the white room mod from CommonFactory over on the game discord. It uses JSON to remove all the walls and colliders, add furniture and adjust all the lights and exposure. This artist put a lot of work to create this and it looks fantastic.

I believe his intent is to release it here with the newer Monkey as it makes the mod simpler. No date on this yet, as I'm waiting to see how many things I need to fix in the next game version.

-T-
 
  • Like
Reactions: qwertyuq123

Bazmanfoo

Newbie
Mar 8, 2020
61
30
You can download and try the white room mod from CommonFactory over on the game discord. It uses JSON to remove all the walls and colliders, add furniture and adjust all the lights and exposure. This artist put a lot of work to create this and it looks fantastic.

I believe his intent is to release it here with the newer Monkey as it makes the mod simpler. No date on this yet, as I'm waiting to see how many things I need to fix in the next game version.

-T-
sounds good. Got a link to the discord?
 
4.10 star(s) 153 Votes