Diving Into Numerical Relationship Values (For The Numerically Challenged)

Evening, Everyone.

I’m working on a few different things, but I keep fumbling over one subject that often inspires borderline, rag-inducing confusion. Relationship Stats. To be more accurate: Implementing them. I know how to create variables. I have a great deal of fun with that, and I’m rather fond of Booleans.

The area I’m struggling with the most is knowing how much of an increase or decrease to assign to choices relating to relationship values. I’m inclined to use a point-based system, where each choice will add a point or two or take away a point or two. Yet then I question how I would convert the Point Based System to a Show Relationship Bar in Stats Screen with a percentage.

I’m numerically challenged.

I’ve scoured the forum looking for an answer, but nearly every post I’ve crossed deals with every aspect of relationship values outside the entire number-based side of things. I’ve read, repeatedly, how to create the variables so they can be implemented, how to check which relationship is the highest, relationship values as a string or variable…but I’ve yet to cross a line that gives through, rounded out advice on applying a numerical value to a stat (and variations) with the story’s overarching narrative in mind.

For example, if I’m not clear enough.

You meet the RO in the story. We’ll call him/her Ryder. Last name. You’re neutral, relationship-wise.

At the halfway mark, you have to have a good relationship with Ryder in order to, say, save Ryder from a difficult situation because they have to trust you when you direct them to safety.

How the bloody hell would I implement the increases and decreases to Ryder’s relationship stat, especially if there are multiple choices changing the relationship stat in conversations and/or events dealing with Ryder? How do I know how much each choice rises or lowers the relationship stat that, when the time comes, the outcome with Ryder will accurately reflect the choices from before? Preferably without me having to constantly change the increase/decrease amounts until I get it right.

Advice is requested, appreciated, and very much welcome!


The way I approach this or any other quantifiable relationship is to use the basic % measure with various thresholds that represent the status.

Keeping things simple: a relation is usually maxed out at 100, so in general I have a threshold of 25, 50, 75, and 100.

25 can be named: acquaintance, 50 could be: friend, 75 can then be: bff and finally 100 is: lovers…

Of course, this is all arbitrary and mutable, but this is the idea in brief.

One very important caveat: I, personally, am separating the relationship from the romance as a way of both being more inclusive… so I have romance points and friendship points, and I enable and even encourage one without the other.

As far as balancing goes: that is something that is often necessary, even after your game is published.

Edit: One additional thing - I use “fairmath” changes to keep everything between 0 and 100 and to make changes harder to achieve the more extreme you are on the scale.


That’s one thing I am implementing – the separation of relationship and romance. So, it’s more of how the NPC feels about the MC (whether or not they like them), if the NPC trusts the MC, and then the romance side of things.

Fairmath is the one thing that really confuses me. I remember reading about it, and how it’s harder to get stats raised/lowered if the stat has a high or low value. Which, from what I can tell, makes it virtually impossible to get a 0 or 100 in the stats, from what I understand (might be wrong).

Do you track the choices for number-based variables as you go for a reference?


Fairmath does make it impossible to get a “natural” 100, but if a reader indicates they want “lover” status with a particular NPC, I manually set a “lover” flag to positive.

Trust in my Emigre system is based more on the NPC’s personality because I have implimented different profiles for different characters. One of the NPC’s (George in my game) can have a strong relationship with the MC, but he will never trust them.

Relationships themselves are more defined by personality in my game, with personality choices changing the relationship throughout the story. This allows much more flexibility so far in my experience.

An example:

Jill is an adrenaline addict – this means in a particular situation, she will chose a higher risk option. This is different than David, who is more rational and “logical” in his thinking. Jill wants to throw the bomb, and David does not. What the MC allows will dictate both David’s and Jill’s reaction.

I hope this helps.


I do not change the increases or decreases; if you do this, you may not want to use fairmath.


Here’s another question.

With fairmath, once the stats get higher/lower where it’s harder to get them to change, will the percentage used to increase or decrease the stat in question also get raised or lowered? Like, if you use a 5% increase or decrease on options, would you later raise it a bit higher to account for it?

One final question, Eiwynn. Do you use multiple Fairmath percentages? Going with the idea of a NPC who jumps at higher risk operations vs one who prefers more caution, would you have different increase/decrease shifts depending on the choice?

If the Player chooses to dive into danger without any kind plan, they’d get a higher increase to Jill (say %20) while getting a decrease of 20% with David because it favors the high risk vs caution?

If you choose to plan first before going in, it would be a 10% decrease for Jill and a %10 for David? This would be a middle ground. Jill isn’t as thrilled about it, but there’s still risk involved, and David is okay-ish but still unhappy so also a small increase.

Or planning heavily would be a 20% decrease for Jill (cause it takes a vast majority of risk out) and a 20% increase for David (for being cautious and prepared for what could happen)?

The above is just a very rough example, a better way for me to understand as I work to wrap my head around Fairmath (and the math behind that is kind of odd, but I think I got the equation down for both addition and subtraction – which is good, as I’ll want to test all my stats that are using Fairmath before moving to the next scene)

1 Like

I’ve done both.

   #Allow bomb to be thrown
      Jill squees in pleasure as she lobs the lit bomb into the theater.
      *set addicted %+ 15
      *set commonsense %- 15
   #Do not allow bomb to be thrown
      David pumps his fist in triumph. "Common sense prevails!"
      *set addicted %- 15
      *set commonsense %+ 15
   #Tell both Jill and Dave to grow up.
      *set addicted %- 15
      *set commonsense %- 15

In the above choice, all options are of equal weight … the amount I change the variables by are equal.

   #Allow bomb to be thrown while theater is crowded.
      Jill squees in pleasure as she lobs the lit bomb into the theater.
      *set addicted %+ 15
      *set commonsense %- 15
   #Allow bomb to be thrown while theater is empty. 
     Jill sticks her tongue out at David then lobs the bomb into the theater after closing time.
      *set addicted %+ 10
      *set commonsense %- 10
   #Do not allow bomb to be thrown
      David pumps his fist in triumph. "Common sense prevails!"
      *set addicted %- 15
      *set commonsense %+ 15
   #Tell both Jill and Dave to grow up.
      *set addicted %- 15
      *set commonsense %- 15

In the above choice, I have different weights depending on how each character would see the severity of the action taken with each option chosen.

Remember – CoG views swings of 30% to be large, so any one option should never go above 30% according to their style guide.


That honestly made me laugh.

And here I thought 30% was where they put that line. Huh. Another note to add. And I honestly thought the last question was the last question, but then you brought that to light.

So, if %20 is a large increase/decrease, what would be a good range for choices?

I was thinking of 10%, 20%, and 30% after I read the Arithmetic Operators page that was linked in another discussion that was talking about how Fairmath does its math. And the 20% did seem to have some rather large increases and decreases to the stats I was testing it on.

Would 10% for minor choices, 15% for regular, and 20% for major be a better route to go?

1 Like

30 is what the wiki says, so I corrected my post.

With that said, I rarely go above 10 personally. 5-10% is what I am usually comfortable with on any one choice.

I do not like it when a single choice change my stats too much.

If I had to give a standard rule…

1% = insignificant
5% = minor
7% = impactful
10% = major
20% = life changing


I think I prefer your Standard Rules compared to what the Wiki says. When setting a 30%, Fairmath isn’t exactly being fair anymore. More like cruel and loving, depending on which choice you make. The various degrees in numbers allow us to tweak how much an impact Fairmath can have depending on how high (or low) a stat is.

Read one comment about having very high skill being dramatically dropped after one choice. I think I’ll take your Standard Rules as they’re far more malleable. This is exactly what I was trying to figure out, for both relationships and applying them to other stats as well.

Thanks for all the input and help, Eiwynn! :slight_smile:

1 Like

If you want to test out the effect of different values for low/medium/high/massive/(etc.) stat changes, you can use variables to easily change the numerical value for each level across your game. So:

*create low 10
*create medium 15
*create high 20

Then if you want to give a medium stat bump:

*set Amy_Relationship %+medium

Then you can just change the value of “low” or “medium” or “high” and it’ll adjust the impact of choices across the board.


This is something simple that I did not think of. I will be sure to use this, thank you @Amtelope!


Similarly, you can also create variables to hold the values you want to test against. This helps you ensure consistent difficulty within a scene or chapter, lets you ramp up the difficulty over the course of the story, and makes it much easier (possible at all, really) to adjust the difficulty across the board if you find it needs tweaking once you start testing.

*create AWFUL 25
*create BAD 35
*create DECENT 50
*create GOOD 65
*create GREAT 75

*if stat < AWFUL

*if stat < BAD
*elseif stat < GOOD

And so on.


These are both really good ways to continuously check if stats are progressing in a way that we want them to go, and a very good to see which stats might need tweaking in order to meet a stat-check later on.

This will make checking the flow of the stats easier.