Modding in more Save Points
By: Rocky
Published : 24 October 2006

One of the more commonly bemoaned aspects of Ghost Recon Advanced Warfighter is the lack of a quick save option. Coupled with an auto save feature that for some is far too infrequently implemented means that at some points in some levels, gamers are left frustrated at playing the same section over and over again because of one stumbling block 20 minutes down the line.

There is however one fairly simple way to modify the mission files so that instead of say 5 saves points throughout the mission, there are 10. This will cut down drastically on the amount of going over old ground that happens when you hit a difficult point in a mission.

This guide may look long, but that is only because I go into every detail so you don't get frustrated by missing information, the actual process is easy and quick! Before we start remember one thing - backup any files before you start playing with them!

Extract the Bundle

The first thing to do is start up Nemon's Bundle extractor, browse to your GR:AW installation folder and open the file patch.bundle that you will find in the Bundles folder.

Now navigate to the data/levels folder and you will see GR:AW's 12 missions listed. Select the mission file (e.g mission06.xml) you are having problems with and click on the xml file.

N.B. Some missions have an extra file called, for example, mission06_ni.xml. This is the No Intro version of the mission and is identical to the normal mission file but with the line of code that activates the mission cinematic at the start, removed. If you decide to edit the No Intro version you must save it without the _ni suffix, as these modifications will only work on files named like mission06.xml.

You should now be looking at the xml script for that mission in the right hand pane. We need to copy that code into an xml editor so highlight the entire code and then right click>copy. You can close down the Bundle extractor now, we are done with it.

Launch XML Editor

Now to edit that mission we need to paste the mission into an xml editor, I find xml marker is a good tool for this purpose. Download and install xml marker, and start it up.

In the top right pane there is a hint to put xml code in there, so that's where to paste your mission! Left click in that pane, then right click and select paste. The mission file should then appear. There may be one or two error messages where this tool suspects that GRIN have made mistakes with their code (!), but just ignore that, that's not what we are here for!

Add the Extra Save Points

Now we are ready to edit in some more save points. What we are looking for is blocks of code that start with event name tags, like this for example.

<event name="activate_stryker_cleared">
    several lines of mission scripting appears here

Whenever you see a block like that, you can add a save point, if you look through the code, you will be able to see where the default save points are, they look like this

<element type="SaveGame" name="check_point01" start_time="2.0"/>

There are two elements we are interested in.

Name your Save Point

The check_point01 value is the name of the save point that you will see appear on screen during the save process, and also in the load mission screen back at the main menu in GR:AW. When we add a save point the convention I suggest is to append a letter to the name, so that when you go to load the mission, you can immediately tell which saves in your listing are the modified ones. There is another important reason for this naming convention that I'll come to soon.

Set the Message Start Time

The start_time setting is the delay in seconds that GR:AW takes to display the "saved" message on the screen and to activate the save. One reason that there is this option, is to make sure the "mission saved" message does not come up on the screen at the same time as a mission critical message. For our purposes it is probably safe enough to set that value to 4.

So now we know what our custom save tags are going to look like, for example

<element type="SaveGame" name="check_point01a" start_time="4.0"/>
<element type="SaveGame" name="check_point01b" start_time="4.0"/> etc.

Place the Save Point

Now we need to figure out where to put these saves. As mentioned before we are looking for event name tags. If you browse down the mission script, there is every chance you will see the tag you are getting stuck at, as they are name relevant to what is actually happening in the mission.

For example, if you are coming unstuck when some tanks appear, and there is no save point at that location, you  might come across code something like this in the mission.

  <event name="reached_tanks">
   <element type="TriggerEvent" event="crew02_in_tank" start_time="0.0"/>
   <element type="DebugString" msg="reached_tanks" start_time="0.0"/>
   <element type="UnitInArea" area="tanks" state="deactivate" start_time="0.0"/>
   <element type="ActivateVehicle" vehicle_id="panhard02" start_time="2.0"/>   

If we wanted to add a save point there ll we have to do is add our save line in there, so the finished code looks like this

  <event name="reached_tanks">
   <element type="SaveGame" name="check_point01a" start_time="4.0"/> 
   <element type="TriggerEvent" event="crew02_in_tank" start_time="0.0"/>
   <element type="DebugString" msg="reached_tanks" start_time="0.0"/>
   <element type="UnitInArea" area="tanks" state="deactivate" start_time="0.0"/>
   <element type="ActivateVehicle" vehicle_id="panhard02" start_time="2.0"/>   

Importance of Save Name Convention!

Now, an important little point to take note of here is that sometimes you'll find when you play the mission that the modded save point is not suitable, perhaps it is in the wrong place, or it appears 2 seconds after another save point! This is the other reason I mentioned that it is important to have a good naming convention - so that you can go back into the editor and quickly and easily find the bad save point and remove it.

It is for this important reason, that I would suggest you use the following system to name your save points. Once you have selected where you are putting a save point, scroll back UP the code to find the save point that precedes your new one. Use the name of THAT save point to create your new one, adding a letter as described earlier. So for example, if the previous save point was called check_point04, then you should name your new save point as check_point04a. Similarly, if the previous save point was already another modded save point, it might look like this check_point03a, in that case you would name your new save point as check_point03b.

It might seem like going overboard, but believe me this will save you a lot of headaches if you have to go back into the code to change save points.

Continue to go through the code adding as many save points as you wish, hopefully using the clues in the code to put them where you really need them. If you put in too many, you'll find Game Saved! messages popping up at the same time in groups. If that happens you will be able to delete the extra saves points easily - because of your careful naming convention!

Save the New File

Once you are happy and ready to try the modded mission out, simply click File>Save as, and save it into the following folder (you'll need to create it) in the GR:AW installation folder.

local/english/levels/mission05  (where the number is the actual mission number of the file you edited.

When GR:AW loads it will use your new modded mission rather than the one in the bundle. 

When you play the mission now, you will see new Game Saved messages popup at the new locations, hopefully exactly where you needed them, to allow you to progress through the campaign!

Thanks to noquarter for checking this tutorial.

Example File

Download this file which adds 9 extra saves points to Mission 1 Contact!