Some thoughts about fairmath and 'unfairmath'


This was going to be an organized, thoughtful post, but it kind of turned into a ramble…

I’m sure this general topic has come up a lot of times, but I’ve got (what I think) are a couple new ideas, so I’m starting a new thread… I’m mostly curious if anyone else has a unique way of changing stats, and I guess a general discussion of how to quantify story elements.

The Ramble

50 as Default

So, it’s nice to keep a relationship value between 1-100, and not be influenced too much by how many times you’ve interacted with a character (just generally what those interactions have been), but the different values of changes often don’t make much sense. Get a good relationship with someone, and it becomes easier to damage that relationship. Characters with a low relationship value are effectively more forgiving than those with a high one. Could there be room for friendly joking? What about a character that initially hates you unless you’ve been consistently nice, when they’ll have a moment of recognition and suddenly flip to a very positive relationship?

One solution is to assume that 50ish is the ‘easy’ value to get and define it differently for different characters. This would be confusing if you showed the actual numbers on the stat screen, but you could get around that by converting it to text or a fake percentage. Translate one character’s 50 to a 20 because they’re inclined to dislike you, and another’s to an 80 because they’re your mom. This could mean that some stats would be impossible to get (‘mom’ would never go below 30) and we have the problem again of stats going above 100. Of course, we could throw out a percentage display altogether and just use Fairmath to keep everything on the same scale, but percentages have become kind of standard now. I’d probably ‘hide’ that the stat was technically over 100 without resetting it. But then you could do something negative and it would look like it didn’t have consequences…

Or, we could have a bunch of checks at every relevant choice (probably in a subroutine) that would change what the increase/decrease actually was depending on the character, location in the story, and current value. This is essentially replacing Fairmath with something more nuanced, possibly specific to your story, but not necessarily.

Speaking of replacing Fairmath…
I’ve been planning to use a ‘sanity’ stat for a few characters, something that would keep track of stressful or traumatic things that happened to them and change their actions later. (I really feel like there’s a better word here – maybe simply stress?) I briefly considered tracking this with Fairmath, only to realize it was exactly opposite of what I wanted. People don’t necessarily incline to some midpoint between stressed and fine, but to one or the other. If you’re doing fine you wouldn’t be easily perturbed, and the more stressed someone is, the harder it’d be to cheer them up. (Yeah, I’m completely generalizing. Putting numbers on emotions is hard.)

Anyway, I was curious what the opposite of Fairmath would look like, so I tried it out. Would need some major tweaking to really be usable, since it’s pretty much impossible to bring a value up from 10 or down from 90. And of course it will skyrocket way above 100 or plunge below 0 if you let it. But it seems like it’d be useful somewhere…


Academy of Arcana [WIP, Demo, Updated 19/03/2019]

Don’t’ya worry, I’ve got your back:

Some of the thoughtfulness:

Given that the fairmath:

Makes higher statistics more difficult to increase and easier to decrease;
Makes lower statistics more difficult to decrease and easier to increase;
Contains the value in a range from 0 - 100,

Unfairmath implies the reverse, and can be useful for calculating different ‘types’ of statistics.

Types here can be considered realistic, as in skills - There is a learning curve, so learning becomes more difficult and would utilise fairmath, but lets say a technique of some sort is acquired and enhances the skill-level exponentially - unfairmath.

Perhaps an investment system can utilise unfairmath with caps, i.e. an amount of money invested increases slowly when it is low, and the rate of investment changes as it increases.

For linear stats, of course, normal maths applies, but let’s say a stat like ‘Willpower’ is influenced by some external force - unfairmath can say, ‘Your Willpower has been reduced, but because it was so high, the effect was minimised,’ or, ‘Your Willpower has been increased, and because you can channel your will well, the effect has been maximised,’ and so forth.

Conclusion: Unfairmath gives an opportunity for streamlining the dynamic relationship between a stat and how it affects the forces that act on it.

I vote yes, thank you @Alexandra for introducing me to this concept.


I’d like to update on how this concept has helped me in my current project:

NPC disposition plays an important role in the story, and is almost always affected when interacting with them.

If, for example, the player builds a good rapport with character Exeter from the get-go, and later takes action that he disapproves of, using unfairmath gives me the option to say, “Exeter disapproves, but trusts you,” so the negative effect on his dispostion is minimised.

If, however, the player has always been mean to Exeter, he already has a strong dislike for the player and the negative effect is compounded.

It’s interesting to find the circumstances where unfairmath can really enhance storytelling.


When I was young(er) and stupid(er) I decided I was too awesome to use the LAZY PERSON’s fairmath route. As a result, three of the stats from my first Hosted Game used ordinary numbers. Then I tweaked them very carefully so that it was possible—just barely—to reach 100% in any one of those three stats (which would then give the player an achievement). The stats are mechanical skill, courage, or happiness and the game is Attack of the Clockwork Army.

I think it works fine, but I don’t think I’ll put myself through that again :stuck_out_tongue:


I think when using unfairmath as a replacement for fairmath, the type of stat and its use in the game should be of the unmost consideration.

For example, I think a linear skill stat such as strength or stealth should in most cases use fairmath to increase or decrease, reason being that there is a skill cap or a point where mastery is achieved (probably). Also, you find yourself relying on knowledge and techniques to gain advantages, and when that knowledge or skill is lost, a significant portion of your skill is compromised.

For relationships, I think using fairmath and unfairmath can depend on the character and that using it can add a great deal of depth to a character.

A character who is harder to get close to, and trusts unerringly and absolutely once broken out of the proverbial shell, can use unfairmath for their relationship stat(s). This will make the character’s stat(s) feel better and more realistic since the player will experience difficulty in raising/lowering the stat. Additionally, this puts less burden on the author in adjusting the values of the stat changes to make sure you get the appropriate reactions.

For more impulsive characters who love and hate at the drop of a hat, I think fairmath should give a better sense of their emotions when applied to their relationship stat(s). A single action could turn them against someone or make them switch sides against a hated character.

The only problem I see with this approach is the possibility of never having an unfairmath stat change beyond the first specified direction, like choosing to insult a person whose relationship stat is programmed in unfairmath and never getting a high relationship with them due to that one stat change.