Trying to convert variables for CCH sequel without destroying previous reader saves


Okay if anyone an answer this, I will be much obliged…

The Problem: CCH Part 1’s relationship coding is horrible. I would like to “fix” it for Part 2 to let me move forward more easily, but I want to do this in a way that does NOT ruin any of my readers’ saves for Part 1.

Nitty Gritty of the Problem: I didn’t use fairmath for relationships. I should have. As a result, I have some characters that are featured more prominently having higher relationship numbers than others, so there’s no one real “scale” that applies to everyone. For example, a +20 score is great for some characters and horrible for others. This makes it incredibly hard for me to move forward because I have to keep track of what is a “good” or “bad” relationship score for all my relationship stat checks.

Possible Fix: Could this work? Can I convert it all to fairmath in Part 2 without changing anything in Part 1?

I create a chart of all the characters from CCH Part 1 and figure out each of their respective “scales.” Then at the beginning of Part 2, I convert it all. For example…

*if dirtygirlrel > 60, set dirtygirl_newrel 75
*if dirtygirlrel > 30, set dirtygirl_newrel 50
*else set dirtygirl_newrel 25

So basically I’ve created a high score, a medium score, and a low score for her, and then I use fairmath for all subsequent increases and decreases.

Is this workable or am I destined to make my old system work no matter what?


I’m a novice in choicescript but faced with this issue elsewhere - the programing team I was dealing with had a prelude for their part 2 which converted the old system into a new one.

Is it possible to write some Prelude which your readers can answer some basic questions concerning their Part1 MC and you can then translate those to your new system?

I’m glad you brought this issue up because it can save me these same headaches in the future.


I’m no extraordinary coder, but that seems to make sense to me. Do you even need to use two stats, though? Or could you just use:

*if (dirtygirlrel > 60)
    *set dirtygirlrel 75
    *goto statseverywhere
*elseif (dirtygirlrel > 30)
    *set dirtygirlrel 50
    *goto statseverywhere
    *set dirtygirlrel 25
    *goto statseverywhere
*label statseverywhere

My only thought is that if you put in a line or two of prose to pretend to explain the change - in this case, maybe something like, “You and Dirty Girl are getting along pretty well these days,” (or “are pretty much mortal enemies” or whatever), the reader can think that the new stats are summing up the current state of the relationship?

That way, readers who aren’t familiar with choicescript think the change is some sort of genius literary choice on the author’s part to reflect their growing relationships, rather than just getting confused when their stat charts leap around for no obvious reason.

Or maybe there’s another way to minimise confusion with the stat changes that could be inserted smoothly into the game?


Thanks to you both. I’m going to try it in the next few weeks and then add a goto_scene command at the end of my CCH Part 1 climax file so it will carry over into my Issue 5 draft and then run random/quick testing on it all.

I figure if it runs smoothly that way, it should run smoothly with saves and such.

But to my horror, I now realize that I may have added one or two new variables to my old Part 1 files when reread them and realized I wanted to capture a few more events to carry them over to Part 2. That may have been a stupid move on my part because I’m guessing it will cause an error with new plays. Time to hunt them down and remove them I guess.


I did similar things from LH1 to LH2. I ran all the saves through some code which changed some behind the scenes things to make future coding easier. :slight_smile: Lots of flags and checks that I ended up doing differently.

A lot of time passed between when I started LH1 to when I returned to that code. (I started LH1, then stopped to make Life of a Mobster, then back into LH1 and then into LH2).

My main goal was to keep all of the saves valid and make all of my changes be unnoticeable by the reader. :slight_smile:

LH3 still has things being carried into it that I would do differently, but that’s the nature of a long project. :slight_smile: