About Achievements


I’m wondering if there’s any way for achievements to track data across multiple playthroughs. For example, if a game had five possible endings, would it be possible to award an achievement for achieving all possible endings?

Autotest Question

There’s actually a command for this: *check_achievements

Edit: the link doesn’t seem to work… It’s given on this thread, too:


The wiki is at here actually.

@ParrotWatcher the link doesn’t work probably because you included the backquote ( ` ) on the link :grimacing:


Nope, that doesn’t work, either. Or the asterisk… :confused:

Okay, I needed the http:// part…


Huweeheehee :rofl:
At least we learn something new, everyday.


Thanks everybody! :slight_smile:


Taking a look at that link though, it seems like it’s only possible to do this by tracking other achievements. So, if for example, I wanted to award an achievement for finding all possible endings, I would first have to award achievements for each individual ending.

Lets say, I don’t want to give an achievement for each individual ending. Would there still be a way of tracking that? For example, is there some kind of code for fake achievements? Something that wouldn’t award the player points or show up on the achievements screen, but could still be tracked across multiple playthroughs?


Nope, not that I’m aware of, but it’s an excellent idea for precisely the sort of thing you wish to do there.


I think your case can be circumvented (cheated), somehow. :thinking:

What are you specifically trying to aim with tracking these achievements?
Is it a content that’s locked behind an achievements?
Or achievements that stored on cross platforms or something?


No, there’s just a game I’m making where the player can choose several different paths to go down and I thought it would be cool if I could award an achievement for completing all of these possible paths (without giving an achievement for just completing one of the paths.) I think I might just award achievements for the individual paths though. Something like 5 points each, so it’s not too much of a reward.


AAh! I can see where you’re going with that one! :fearful:

Hmm… hmm… :thinking:
The problem with achievements is that they always go POP UP.
And if you use stats or variables instead, they’ll always be reset for each playthrough.

Errhhhfgrffrfff… :thinking:
I don’t know :exploding_head:
Somebody lend me a hand here.


New question! How about achievements that rely on variables? I’m sure this can be done as I think I’ve seen games that do this.

Say, for example, you wanted to award an achievement for getting your stat to a certain level? Like say, if your Strength reaches a score of 100, you get an achievement for it. I guess this could be done by adding “*if (Strength = 100) achieve achievement” every time the character’s strength improves in the game, but is there an easier way of doing it than that?


It really depends on your actual game design. For instance, if your game uses some sort of ‘transit’ file (a scene file it periodically reloads throughout the course of the game for one reason or another) then that may be a handy place to consider placing this sort of check.

It may even be possible to place it in choicescript_stats.txt, so it only checks / triggers when the player views that actual stat—but don’t quote me on this as I’ve not actually tested using it for this particular purpose, and I’m not sure I would even if it were possible.

Failing either of those, I would suggest just placing those checks in a *gosub / *return subroutine and make use of that with every stat change, so *achieve is triggered at the precise moment the condition is met.

[ N.B. If using fairmath, bear in mind that values will be in the range of 1-99 at any given time, so 100 would never actually be achievable. :slight_smile: ]


If what you mean by “easier way” is “can I award it regardless on which scene the player is,” than you’ll have to go *if stats=100 on every increments you have on the game.

It’s actually not a tedious labor. Just use the search function and edit them 1 by 1.
Ok, that sounds tedious :sweat_smile: