Relativity/absoluteness of relationship stats

Couldn’t really find any other similar threads so I hope it’s ok to post this :slight_smile:

I’ve just finished a CS project in which the max relationship value for the two main non-MC characters are 19% and 34% respectively. At relationship >30 the second character confesses to MC their role in a crime that could very possibly result in a death sentence. This led to a headache some questions:

  1. What are relationship values relative to? As in what does 100% relationship even mean, if we were to extrapolate it to real life? Do you view 0% as neutral (making negative % indicating dislike) or 50% as neutral?
  2. Do the meanings of relationship % vary from character to character within one story? For example, let’s say there is character 1, an RO, and character 2, a non-RO, and let’s also say 1 has a secret that they will tell MC if it’s 60%. If 2 had that same secret, and all other things being equal, would they also tell MC at 60%, or would they need something higher because the nature of their relationship is different? So what I’m saying is, are relationship stats relative to the character or set against a universal benchmark? Do they distinguish between different types of relationships (friend, working, RO)? Does who the other character is, along with their personality and willingness to trust, affect how the cut-offs are set?
  3. What % value would you set for a stranger who the MC has just met? Not a character the reader has just met, but the MC themselves. For example, MC is driving along and meets a random person on the side of the road. Would that relationship start at 0, or would there be something of a first impressions thing, where if the MC happens to be smiling or has a high attractiveness stat (if there was one), the halo effect would kick in and the stranger would view MC more favourably, so it starts at 50% or something?
  4. For you personally, how much attention do you pay to relationship values? (non-ROs)
  5. What’s the highest % you’ve achieved in a story or within your own story if you have one?
  6. Do you prefer %, integer values, or text descriptions as relationship indicators?

I understand that ultimately the way stats are constructed depends on the story and the author’s preferences/personal guidelines, but just curious to see what y’all think and what the general perception of it may be :slight_smile:


I can answer some of these as I gave them some thought with Paradigm City.

  1. 50% is neutral. Anything lower than that expresses disapproval or dislike. Anything above expresses approval or like. 100% would be an impossible, theoretical limit. I used 80% as the threshold for ‘I like this person enough to consider them a romantic partner’. Setting it at 0 to begin with could be interesting but would possibly result in weird situations where it sticks around 0. 50 feels like it allows for more back and forth.

  2. Yes. In Paradigm, there is one big bit of knowledge about a character that can come out from a few ways. Two characters know it and each character has a different threshold to tell it. This was based on characterisation and how they feel about it. One of them views it as an open secret, so, their threshold is lower. The other views it as something a bit more complicated.

  3. If there were a total stranger, I’d probably leave it at 50% and heavily alter it based on the initial meeting.

  4. Very little.

I kind of think absoluteness of relationship stats can be an issue. It can be weird if everything comes down to a check of ‘do they like me or not’. In Paradigm City, I had points where the check was basically:

“Hey, I need you to help me out with this thing even though you’re busy.”

First it checks whether they like you (relationship % – whether they like you enough to help you). If that isn’t enough, then it checks if you’ve performed certain actions they approve of (to represent more of a grudging respect). Finally, there might be a stat check to try and convince them through sheer personality. If you couldn’t do that, then the player had to try it themselves (or find another option).


I love discussing stuff like this, but keep in mind that I don’t have any story/game of my own. So take it with a grain of salt :stuck_out_tongue:

  1. 0% = I don’t know you and I haven’t met you
    100% = I know you well and you explored all of my sub-plot of the story
    And I personally hate it when 0% = I hate you, and 100% = I like you (in any form)
  2. Uh… No?
    I’ll let my readers/players to figure out what are those numbers mean, while I keep the true intention of the numbers on my own :smiling_imp:
  3. 0% (except when your character is famous, somehow)
  4. I don’t know, tbh. But one thing I’m sure is that I won’t let those numbers get ignored in my design.
  5. None. You see, I’m still working on the WIP :]
  6. Why not both? :wink:

But yeah, the short version of my view on this stats issue is that stats must be logical and predictable. You can have a quarrel with one of your party-mate (or maybe RO) and the tension between both of you can be dangerously high, but unless you make a high-heel turn, the relationship stat should not go lower than 50% (or went into the “I hate you” type, in case of @Rhodeworks’s Paradigm City)

1 Like

One thing I don’t see enough of: hidden relationship values.

People are complex. Outright spelling out their attitude to you in the stat screen spoils some of that illusion of complexity when it comes to a character. To me, anyway.

That said: I like the system Keeper of the Sun and Moon has for their relationships, not only tracking the general attitude of each character, but also including hidden stats in certain characters that have a less obvious but still noticable impact (such as Seraphina getting in touch with her emotions). Wayhaven Chronicles also has a way of statting it I rarely see, maintaining a seperate value for how much your team members see you as a friend along with how attracted they are to you, instead of having whether their relationship is platonic being an on/off switch.


I think 50% is better set as neutral because it gives players room to have characters that dislike them, hate them, etc. And I don’t know how negative stat values affect the display of a 0% to 100% bar, so there is that too.

I don’t think 100% relationship or 0% relationship is possible, in real life or in video games. But I’d say 90% is very, very high, past best friends, past marriage.

Yes, I think they do. A character might be hard to get close to, or simply views the world differently.

I think it depends on the nature and/or personality of Character 1 and Character 2.

If your neutral is 50%, I’d start it at 50%. It depends if the character has heard of the MC before, other factors regarding the personality of both characters, and if the character is the sort to think highly of random strangers on the roadside.

I usually try my best to keep them high, since I never know how they will affect the game.

Although, if the character is someone my MC will dislike, I will try my best to keep it as low as possible.

Choice of Robots, ninety-something percent.

I prefer percents and/or text. Integer values on their own, without bars, seem too abstract, I guess.

1 Like

1 2. and 6. Usually 50% is neutral. People you haven’t met are hidden. It depends, with some characters how they’ll interact with you depends on their personality- for example 50% for one person might be warm, for another it is standoffish, but it’s their I don’t like or dislike you potentially state. It also means that anything up or down from that will be variable too. 40% for one person may mean they’re no longer speaking to you, for another, they’ll still make an effort to be friendly. In saying that, sometime I like to make it clearer by writing a little script which replaces the number with a word for things like health and friendships status. I actually kind of like that. (Did it in sea maiden, and will probably use it again.) 100% for me is usually very close friend.

  1. Just met is /usually/ 50% but that is again very variable depending on the circumstances and their personality. Some start higher or lower.

  2. Lots! Seriously I have more stats for non RO than I do for them because why not? If they’re important to the story line, sometimes having a relationship meter happening can help explain why you’re getting the responses you are. Not everything is related to romance, sometimes it can be whether or not someone is going out of their way to help or hinder you.


You did just fine in posting this thread. At worse, if it was too similar, the posts would be moved to an existing thread. Thank you for conducting a search - that is more then some do before posting.

With the caveat that you acknowledge at the end of your post understood to be in place, I will attempt to answer this from my perspective.

Warning: I have a gaming background, which I’ve found makes my perspective different then some, sometimes in subtle ways and sometimes in not so subtle ways.

Now that all the caveats out of the way, I think the definition of “relationship” needs to be stated. Without knowing this, how can one design a game mechanic to represent a “relationship”.

The definition I use in my project is: A connection between two or more people.

Normally the stat_charts show the connection between the MC and an NPC but in theory it can also be used to display the connection between two NPCs.

As a designer, I decided to hide the connection between NPCs from my audience by making relationship mechanics between NPCs hidden.

Never-the-less, just as I track the connection the MC has with NPC1 and NPC2, I track the connection NPC1 has with NPC2. I’ve chosen to display this stat by prose and dialogue instead of a graphic bar.

So, a value in the relationship mechanic is relative to how well two characters are connected. A 100% value on my scale means the two characters are connected 100% and have perfect understand of each other.

In theory this is possible but using fair math, I deny this state from existing in-game. The reason I deny this state from ever happening in my game is simple: I desire the possibility that the two characters may mis-understand each other at any time. This is a hard-cap I place on this mechanic.

I view a displayed stat of 0% in my game as having no connection whatsoever between two characters. I also deny this state from ever happening. In my game, once met, two character have a chance to connect so there is an immediate increase in that stat to above 0%. This is a hard minimum I place on this mechanic. Again, fairmath is used to ensure the numeric never reaches 0.

Using my definition for relationship, I plan on having a standard in every game I design.

In your number 2 paragraph, things like secrets, shared experiences and other events that cause a connection to occur or break.

These events can be defined anywhere on that relationship scale using my design and as such flexibility is gained by setting flags at different milestones instead of being reliant on reaching and keeping those milestones surpassed.

Because I utilize my structure differently then many, a prose description of the relationship really does not apply. I get around this by having different “romantic” flags trigger special connections - play darts with Ellen in the pub and she connects with you as a fellow pub-game player. What the MC will do with this connection will be up to them.

Upon meeting, two characters make some sort of connection and depending on the characters, this varies in my game from 10-35 as a base value.

When I am playing other CS games, how I utilize the relationships depends on how the author developer structured their mechanic. In those games that I dislike the mechanic, I will try my best to ignore the relationship stats as much as possible.

With that in mind, I am trying to provide ways to connect in my game for those that try to ignore my stat-structure. I call these “Nexus points” and I track achieving these as achievements of their own.

I use these as “charisma builders” and the more the MC gathers, the more they will succeed in influencing relationships regardless of the actual connectivity they achieve in the normal mechanic.

I can’t answer number 5 yet because I am still tuning my stats and adjusting them.

I’m sorry for the wall of text - mechanics are important to me.


For the majority of your questions, the most honest answer will be “It varies from project to project and author to author.” That said, there are a few more specific answers.

  1. Relationship values are relative to whatever you want them relative to. A warning, though. If you want percentile stats instead of absolute integer stats, it’s wise to use Fairmath. However, this will limit you to a 0~100 range. Negative values will be out-of-bounds. As a result, it’s common to declare 50 as “neutral,” with smaller values (0~49) as “negative” (e.g. fear, disgust, hate,) and larger values (51~100) as “positive” (e.g. trust, attraction, love.)

  2. Within a single game, varying the meaning of the stat from one character to another could be rather unkind to the player. A relationship stat could track how much a given MC knows about a given NPC. Or it could track how much the NPC knows about the MC. Or it could track how well the MC likes the NPC. Or it could track how well the NPC likes the MC. Mixing those up recklessly could leave players profoundly confused! Please don’t do that.
    Now technically speaking, you could have multiple relationship stats per NPC to track each of these values (and more!) individually.
    As for choosing relationship values at which NPCs reveal new secrets to the MC? That should absolutely vary based on what the secret is, how much the NPC fears revealing it, the type of relationship the MC and NPC actually have… All of that should vary the threshold required to reveal the secret.

  3. The starting (or default) value will depend on what the variable actually tracks and what you (the author) have decided “neutral” should be. For tracking raw knowledge or familiarity, maybe start at 0 because negative knowledge doesn’t really make sense. However, for opinion (I like this person/I dislike this person,) starting at 50 so you can go either way while still using Fairmath is probably wise.

  4. As a player, I don’t pay much attention to relationship stats charts unless I’ve decided I really like (or dislike) a given NPC, and want to make sure I don’t accidentally imply the opposite. From the other perspective, I suspect that if I ever don the author’s cap and put some effort into these ideas bouncing around my head, I’ll be using relationship stats extensively to alter flavor text, swap out available #options, and even trigger events. I know I like such reactions when I’m playing, even if I don’t track the variables that caused them.

  5. I can’t remember clearly (see above) but I suspect between 80 and 90 on the high end, and between 20 and 30 on the low? Many games seem to offer more options to raise relationship stats than lower them. Thought: If your own game fits this mold, perhaps that would be justification for using something other than 50 as your “neutral.” Maybe starting with an offset would give evenly spaced minimums and maximums. E.g., starting at 50 may give minimum 30 and maximum 90, where starting at 40 might give minimum 20 and maximum 80.

  6. Text descriptions based on a numeric stat can be AWESOME. Whether you can see the stat or not. I love them. It can help me understand what the author is actually tracking (Knowledge? Intimacy? Familiarity? Affection?) much more clearly, and can be written to give the relevant NPC all kinds of personality. You don’t know NPC A very well. You like NPC B, and they seem to like you in return. Your relationship with NPC C is… complicated.

The last question put me in a mood to do silly things with code.

A very simple version of text descriptions for a single NPC with a pair of numeric relationship stats may start out something like this:

    percent npc_a_liked ${npc_a_name}
*if npc_a_known < 20
    You really don't know ${npc_a_name},
    *if npc_a_liked < 20
        yet you hate
    *if (npc_a_liked >= 20) and (npc_a_liked < 40)
        yet you dislike
    *if (npc_a_liked >= 40) and (npc_a_liked < 60)
        and you haven't formed a strong opinion of
    *if (npc_a_liked >= 60) and (npc_a_liked < 80)
        but you like
    *if npc_a_liked >= 80
        but you love
    ${npc_a_them} anyway.
*if (npc_a_known >= 20) and (npc_a_known < 40)
    You're getting to know ${npc_a_name},
    *if npc_a_liked < 20
        yet you hate

And of course you could make it more complex with extra variables.

*if npc_a_known >= 80
    You know ${npc_a_name} nearly as well as you know yourself,
    *if npc_a_liked < 20
        so naturally you hate ${npc_a_them}.
        *if npc_a_likes < 20
            It's mutual, of course.
            *if (barfight)
                That mess at [i]Moe's[/i] really cemented the enmity.
It gets ugly. Try to avoid it.

Code Test 6 2017-12-11


That ‘grudging respect’ aspect is a really good point - I’ve been rather naïve in automatically assuming the relationship stat to be a sole determination indicator of relationship, and what you did definitely adds a great amount of depth and nuance to it. I’m adding Paradigm City to my to-play list :smiley:

So if I’m understanding correctly, you view the relationship scale as more a measure of intimacy/familiarity than mere like/dislike? That justifies the use of 0% as the ‘neutral’ value, which is what I used, but then it leads to a few issues in making it “logical and predictable”. For high relationships such as a party-mate or RO, using Alexandra’s unfairmath reduces the chances of any drastic changes, but it would also make it difficult to increase the relationship much past 0%, unless one were to use *if statements and apply unfairmath for maybe above 50% and fairmath below 50%, and vice versa for subtraction. Either way, the code’s not going to be particularly neat. But I look forward to seeing how you design relationships in your WiP!

Yeah, Keeper of the Sun and Moon’s use of both a relationship bar and hidden points for Seraphina does definitely add another dimension in terms of recognising the nuances of relationships and aligns itself with what Szaal said above about the relationship stat being more familiarity and the emotion points being emotional intimacy. Would you prefer something like that or would you rather the stats be hidden altogether?

Wayhaven’s also was interesting, but the main issue is that it’s not normally as clear cut as that in real life. It works there because Wayhaven’s choices have a clear distinction between friendly and flirty, and it’s highly focused on romance, but I don’t see it applicable to many other concepts.

Negative stats don’t turn out well, but my reasoning was that some people might find it more intuitive even if it is technically meaningless.

And leading on from effects of the individual personalities of the characters, I remember when I played your demo that I still got a pretty high stat (high 60s, 70s?) with the best friend even when I tried to kill them and then said some rude things afterwards. Was that high increase influenced by their apparent loneliness (and maybe therefore being more willing to interact with MC)? I hope I’m remembering it right :grin:

I had a look at your health status descriptions and that would basically dispel much of the ambiguity when it comes to what the different numbers mean. That said, as you pointed out, the descriptions would need to vary from character to character. And maybe it’d even be possible to have a high relationship with another character but they still want to “hinder” you as they were just trying to get on your good side so they could have more influence, which would mess up descriptions a bit :thinking:

Firstly, “a connection between two or more people” - do you use three way/group relationship stats?

Relationships between NPCs is an intriguing concept. Do their relationships change both dependent on and independently (e.g. using randomness) of MC’s actions?

Using your definition, once a certain level of familiarity is reached, would the relationship stats become harder to change either way? Because I can imagine that once you’ve known someone for a while and have a certain amount of “understanding”, it sometimes leads to a bit of a cycle where this amount of understanding influences the nature of the interactions, which then only exercise this type/amount of understanding so there’s little change. Or if there’s a high understanding but a tangible amount of dislike between the characters, they would be less inclined to interact and it wouldn’t change much either. Fairmath changes stats more one way than the other - what I mean is that after an amount of time, if it’s on, say, 70%, it’ll usually just fluctuate in the 67-73 region as the two characters have arranged their relationship in a manner that accommodates their level of understanding. (Unless there’s some previously not-come-across event that leads to realisation of fundamental philosophical differences, etc.)

And as you’ve explained in the darts example, there are different ‘fields’ of connection with breadth and depth available. Do you have many issues with quantification?

If you do have those checkpoints where MC can only do something with another character if the relationship is at a certain point, how do you determine that point? The points may be intuitive, but fairmath changes aren’t. I’ve had to go back and manually calculate the changes to verify that the checkpoint value I’ve set is reachable. I’m rather new to fairmath but apart from the ‘scaling’ effect that prevents reaching 0% or 100%, I honestly don’t see the benefits of it for relationships.

The “wall of text” was really quite interesting :grin: Once your game is out I’ll definitely take a look.

Mmm. I find fairmath gives less control, though, so I used a mix of fairmath, unfairmath, and an normal +x values. Probably not practical for large projects though :smiley:

Multiple relationship stats for the same character sounds like a good idea! Have you seen this used before? Would you consider using it for your own projects, since they sound like they’d definitely help in the flavour text aspect? That second example you gave :heart_eyes:


At the same time, the use of an on/off to indicate whether a relationship is romantic also isn’t as clear cut in real life. Human emotion is a messy thing when you add that whole “love” thing to the mix, and it has a way of spilling everywhere and getting into the internal bits. Maybe a given RO who, if you have certain variables switched on, ends up with a huge crash in your relationship later down the line if you’re not romancing them? It’s happened to me, I doubt it’s that uncommon.

As for whether to even show stats in the first place: I’m erring towards hidden relationship values in my WIP, with a small summary about the NPC’s attitude showing up instead of a bar. But certain ROs will have visible relationship bars because, well… you can read their mind, and roughly categorize their opinion of you. Which you can’t do with most people. So, honestly, go with what makes sense for your game the most?


@Retrovirus not necessarily. If needed you can set individual scripts for characters or simply start their % lower to reflect they aren’t as good a friend as someone else.

For example if you have a rival, if you’re at 60% they may still try to undercut you if there is a good enough reason, where as 60% for someone else may mean they’d never work against you. So for person a) a status of “good” or “Ally” may be 80-90% for person A, but only 60-70% for person B.

Otherwise an easier option is to start them lower. So person a might start at 30% meaning you need to work at it a lot more to get them on side, where as person B might be at 50%. But all depends on what you need to do with it :slight_smile:


I ran into this problem when Fallen Hero started to get more complicated.

Originally my idea was that 0 was perfect strangers and 100 was your identical twin. The ‘friendship’ bar as I called it, was a combination between liking someone and knowing them well, hence the term ‘friendship with XXX’ which I used. I used two ways of setting up the initial values: for people you had known before the game started (Ortega, Dr. Mortum) I set the start value with normal math depending on a choice where you picked what your relationship with them had been. For the people you met in game (like Lady Argent), I set the value depending on the first impression you made. Some people are hard to impress and don’t care enough to try to understand you (Argent), which means they start with a low value, and some are more open and perceptive (Herald) which means they start higher depending on what you do. Then it was fairmath from there.

However, this soon broke down once things got complicated. How to juggle friends vs romance? Rivals vs enemies? A rival might know you as well as your best friend,and even like you as much, but interactions with them would still be very different in text form. So, I introduced a second value, the ‘relationship’ value, which is a text descriptor where I can have a descriptor of the relationship the MC has with the NPC. This means I can play around with fun descriptors like ‘old friends’. ‘dating’, ‘it’s complicated’, or ‘business associate’, which sets the tone for the text, and the ‘friendship value’ is an indicator of the… hmmm intensity I suppose? So I removed the term ‘friendship’ from the bar descriptor at all.

Adding to that a lot of little flags, and different NPC’s liking different stats and it’s gets complicated fast. But, it’s worth it, personal relationships are the reason why I write this game in the first place…