Stage 3

Right, go back to game.txt, and set up all the missions and level availability as you need them. Obviously, there are a few rules:

- first level needs Avail = 1 and a mission.
- all levels after probably want Avail = 0, and mission listed as null (not NULL)
- Special seperate cutscene levels need Avail = 0, and can usually keep their mission. It depends on how you do things.

Example (this isn't how it's actually done in Stricken, but it's probably how you will want it):

BEFORE:

0 1 map_recycler.txt mission_recycler_firsttime.txt
1 1 map_epitome.txt mission_epitome.txt
2 1 map_slipway.txt mission_slipway.txt
3 1 map_claymore.txt mission_claymore.txt
4 1 map_central_forum.txt mission_central_forum.txt
15 1 map_thanksforallthefish.txt mission_thanksforallthefish.txt

AFTER:

0 1 map_recycler.txt mission_recycler_firsttime.txt
1 0 map_epitome.txt null
2 0 map_slipway.txt null
3 0 map_claymore.txt null
4 0 map_central_forum.txt null
15 0 map_thanksforallthefish.txt mission_thanksforallthefish.txt

(thanks for all the fish is a cutscene)

That's basically it. Provided it all works, which is now what you have to test. Hopefully, you haven't already tested your levels to death, otherwise this will be tough. Don't expect it to all work first time, either. I wouldn't put it up for beta yet, either, at least go through it yourself, first. Make sure you play it with a real profile.

If you find one of your scripts doesn't trigger properly, or it does, and you forgot to add the setmission line, or something else like that, you can edit your dummy debug level to call debug scripts/have a bunch of trunk ports to make places available, that sort of thing, rather than manually editing (usually encrypted) files - same goes for your early testers, you can use this sort of thing to get the game to fix itself, rather than try to describe how redshirt2 works to them. You can always hide this level, like, send an engineer to a secret patch of water in the first level to warp you to it, rather than show it on the world map. If you do this, You can leave it in the release as a super secret - it'll make me proud someone actually read this.

And that's it! I think that's everything, anyway, after a few cycles of testing, your campaign should progress in all swishy ways. The only thing you can consider adding now is defensive scripting - that is, fallback scripts that will make things still work if a player crashes/quits midway through a long progress script. This can be as simple as adding the setmission to the start of the script, rather than on the end, or, it can involve calling 2 scripts at once - only one will be processed at a time and the other will be added to alwaystrue in game.txt, so if you quit midway through the first one, the 2nd will still auto run when you start it back up, and put your player's progress back on course.