Stat Script for Relationships

I think everyone uses the start stats of 50. I can show you a way how to include the stats in a way they will never get over 100 or below 0, and how to include special names as well.

The best would be to use this:
In the startup, create the following variables:

*create met_Jill false
*create Jill 0
*create Jill2 ""
*create met_Jack false
*create Jack 0
*create Jack2 ""
*create met_Tom false
*create Tom 0
*create Tom2 ""
*create Unknown 0

You can leave out the ‘met_Jill’ part for example, if you want to show the Relationships even before you’ve met the character already. Personally, I like to just leave it to “Unknown”, and they will be revealed once the Character has been met in the future. If you decide to not use the “Unknown” part, just leave that out as well.

You won’t need any more in the Startup File, and thus we go to the ChoiceScriptStats File.
There you should include the following just like I instruct you below, or else you will be in a loop.

*temp JackText ""
*temp JillText ""
*temp TomText ""

[b]Relationships[/b]
*if met_Jill = false
    *stat_chart
        percent Unknown
*if met_Jill = true
    *gosub relJill
    *set JillText ("Jill "&Jill2)
    *stat_chart 
        percent Jill ${JillText}
*if met_Tom = false
    *stat_chart
        percent Unknown
*if met_Tom = true
    *gosub relTom
    *set TomText ("Tom "&Tom2)
    *stat_chart 
        percent Tom ${TomText}
*if met_Jack = false
    *stat_chart
        percent Unknown
*if met_Jack = true
    *gosub relJack
    *set JackText ("Jack "&Jack2)
    *stat_chart 
        percent Jack ${JackText}

*goto continue

*label relJill
*if (Jill > 100)
    *set Jill 100
*if (Jill < 0)
    *set Jill 0
*if (Jill >= 85)
    *set Jill2 "(Ally)"
*if (Jill >= 75) and (Jill < 80)
    *set Jill2 "(Great)"
*if (Jill >= 60) and (Jill < 75)
    *set Jill2 "(Good)"
*if (Jill >= 50) and (Jill < 60)
    *set Jill2 "(Neutral)"
*if (Jill >= 35) and (Jill < 50)
    *set Jill2 "(Bad)"
*if (Jill >= 25) and (Jill < 35)
    *set Jill2 "(Really Bad)"
*if (Jill < 25) and (Jill > 0)
    *set Jill2 "(Enemy)"
*if (Jill = 0)
    *set Jill2 "(Nemesis)"
*return

*label relTom
*if (Tom > 100)
    *set Tom 100
*if (Tom < 0)
    *set Tom 0
*if (Tom >= 85)
    *set Tom2 "(Ally)"
*if (Tom >= 75) and (Tom < 80)
    *set Tom2 "(Great)"
*if (Tom >= 60) and (Tom < 75)
    *set Tom2 "(Good)"
*if (Tom >= 50) and (Tom < 60)
    *set Tom2 "(Neutral)"
*if (Tom >= 35) and (Tom < 50)
    *set Tom2 "(Bad)"
*if (Tom >= 25) and (Tom < 35)
    *set Tom2 "(Really Bad)"
*if (Tom < 25) and (Tom > 0)
    *set Tom2 "(Enemy)"
*if (Tom = 0)
    *set Tom2 "(Nemesis)"
*return

*label relJack
*if (Jack > 100)
    *set Jack 100
*if (Jack < 0)
    *set Jack 0
*if (Jack >= 85)
    *set Jack2 "(Ally)"
*if (Jack >= 75) and (Jack < 80)
    *set Jack2 "(Great)"
*if (Jack >= 60) and (Jack < 75)
    *set Jack2 "(Good)"
*if (Jack >= 50) and (Jack < 60)
    *set Jack2 "(Neutral)"
*if (Jack >= 35) and (Jack < 50)
    *set Jack2 "(Bad)"
*if (Jack >= 25) and (Jack < 35)
    *set Jack2 "(Really Bad)"
*if (Jack < 25) and (Jack > 0)
    *set Jack2 "(Enemy)"
*if (Jack = 0)
    *set Jack2 "(Nemesis)"
*return

*label continue

Now, here you can write whatever else you want to include to your Statscreen, but do not write anything between the *goto and *label continue part, or else it won’t be shown. As soon as the Player opens the stat screen in the game, the script will first look if we even have met any of the RO’s above. If yes, it will jump to the label with their Name (relJack, for example), and look how good their relationship with the MC currently is. Depending on that, it will include a special word afterwards to show how high or low the RS is. Once it is finished, it will jump over the same part to not create a loop and will continue at the label ‘continue’

Of course, you would probably need to change the descriptions, I used the one I have in FAWR, and there it’s rather Ally and Nemesis instead of best Friend.

For further questions, just continue to ask x)

19 Likes