How to Editing Existing SP Missions
By: EricJ
Published :20 October 2006

Let’s face it, the missions in GRAW are pretty full of threats. Ambushes and maybe a swarm of troops. However, it is just kinda getting boring. Flank here, the same spots and the same and same. Here we’re going to add some more targets. Overall of course you know where they are, duh, but still it adds some more pressure to most missions.


You’ll need:

Easy enough, you should open the Bundle Extractor, open the “quick.bundle” and go to data/levels/missionxx, where “xx” is the mission number. Then expand the “xml” and extract the world.xml file. Open the file with your editor. A LOT of stuff to read. Some reference:

- Cover: This refers to any vehicle really, such as the cars, which obviously are used for cover in fights.
- Human: This is every AI, to include your teammates, as well as your insertion chopper/Stryker.
- Small_Static: Plants, streetlights, benches, etc.
- Sounds: Pretty obvious.
- Static: Roads, monuments, buildings, etc.
- Vehicle: Any vehicles that may in the game. Note these are the AI enemy and friendly used vehicles.

Pretty much, all of it is pretty straightforward. Copy this file into a folder name/xml/ with the world.xml in the “xml” folder. If you have previous editor use, then this is pretty easy to do. Open the Editor and select your folder and Load it. It’ll take a bit of course on what you have for horsepower.

Next is just the easy stuff. Pretty much most of it is pretty Greek but with enough experimenting around, you can figure out what is what. Since the game editor works in layers, selecting the layer as per above, again, is pretty self explanatory. Note however, “Cover” is the “Dynamic” layer. The dropdown menus show up, easy stuff.

Placing additional soldiers

GRAW works off of the data/lib/managers/xml/group_manager.xml. This file has the normal “template” for the game, i.e. to easily place the badguys on the map. If you have previous work with the map editor, select “Human” and a globe on a stand appears:

I then right-click:

The four red globes represent the amount of soldiers that will be placed in that particular area. You can drag this on top of buildings for sniper positions. The little “stand” is where the soldier will initially point. The blue circle around the icon is the radius in which it will encompass, or the “footprint”. Now here’s the main selection screen:

By default the “Blackhawk_crew” is selected. Since we’re not putting any friendlies here, we’re going to select:

Since “Strong Point” is a quasi-night map, we’ll just do this for giggles. Now since it’s near the power station:

In the appropriate mission.xml file it refers to this group. Pretty much I go for the closest units near where I want to add, it keeps it simple and not going too far into mission editing. This is good enough for now. Click on the “Group ID” box, backspace and enter the “power_wave” as that group, when the game spawns the enemies.

Now we can select general orders. Right now I’ll leave it at Guard, since obviously they’re guarding the Power Station. If we select Patrol:


Placing Panhards and their squads

The length of time of course depends on the complexity, etc. Again for ease, keep the names similar, and you shouldn’t have any problems. If anything, they won’t show up because they weren’t specified in the mission.xml file. Now at the first town, we want to add a Panhard and it’s crew and soldiers:

Specify the vehicle ID as “fight” as that’s the group that is there. Add the other soldiers:

As you can see, I adjusted the Panhard slightly as it would be slightly “realistic” for it to be parked that way. Finished group:

Note it may be a good idea to check off the “Crew” box:

Another Panhard team:


Placing another sniper can be weird at first, but here goes. First off, create the sniper just like any soldier, or use a single soldier for this. Reason being collision detection will get the game to crash, so one guy only.

We’ll use a G36 armed sniper for this tutorial, unless of course you’d like to use a PSG-1 equipped one… Now placement, does really make a difference as to where he needs to “watch” your initial placement gives him location. Select Sniper for his Order:

A wireframe yellow cone shows up initially, pointing in some odd direction. Now the next part is the secondary placement, i.e. where youneed him to Overwatch. Leaving the sniper highlighted, place him (on this corner of a building for example):

Initial area to watch

Where I want him to snipe from

Now use the middle button on your mouse, click:

Viola, he now will watch that assigned area. Assign him as part of the wave that is closest, and you are good to go.

Additional Atmosphere objects

And just to add some more to a sparse base:

Note that YOU MUST be careful on what and where you place it. For all intents and purposes it’s a hunt on what is causing it to crash. Why? Because the enemy may spawn where it shouldn’t, i.e. in a building not designed for AI travel, or another “non walking” area. It takes some time and ultimately patience to figure it out before “it works” for you.

Changing the Sky

Sometimes the map needs a little “freshness” to it. As you can see, the above shot is “VIP2 is Down”, at night. How did I do it? Trial and error of course. Okay what you’ll need:

Okay, let’s get started. First we’ll use this mission, since well, I spent so long on it. First off start some folders. In your Local/English/ directory, make a “levels” folder. We’ll create another folder, “mission03”, which is the mission name in the quick.bundle, and then create an “xml” folder, which should look something like this:

Open Nemon’s Bundle extractor and go to data/levels/mission03/xml and extract the “world.xml” file. Then of course put it in the one you just made. Open the world.xml and you should (I would highly recommend) and hit CTRL-F and put in “lights”. It’ll take you to the…. My bad, open the mission05 tree and do the same. Extract if you don’t feel like hunting for it, and of course put it where you can access it. Back to business, open the recently extracted mission05 world.xml and go to “lights”, copy these lines:

<lights name="first">
<light r="1" g="1" b="1" far_range="5000" type="directional|specular|shadow_caster">
<position pos_x="-9920.918" pos_y="-19277.945" pos_z="4389.4434"/>
<rotation yaw="156.4702" pitch="57.638336" roll="179.99989"/>

And paste them at the same spot on the mission03 world.xml, and that’s settled. Then scroll down till you see this, copy the mission05 onto the mission03.xml:

<sky name="first">
<rotation yaw="0" pitch="0" roll="-71.506332"/>
<setup sky_name="mission05"/>

Naturally, this is the sky texture that is applied onto the map, which is a globe:

Now we can go into the game, and it’ll look like this:

Now go to the data/levels/mission03 file and extract the “mission03.xml” file into the main directory. Open it and replace the mission05.xml lines into the mission03.xml:

<load_scene file="/data/levels/mission03/mission03.diesel" use_lightset="true" materials="/data/levels/mission05/materials.xml">
<object name="world_bb" hidden="true"/>
<!--Collisions -->
<xi:include xhref="xml/mission05_collision.xml#xpointer(/collision/*)"/>
<global_ambient color="60 60 40"/>

DO NOT replace the “mission03.diesel” line, that is the main 3d mesh, just leave it alone. Next extract the “atlas_props.xml” from the mission03 folder and insert into the mission03 folder, and then add this line:


The last obstacle is the command map. If you did not mod it so it’s color, skip this part. If you have however, create a “textures” folder (if you haven’t already) and do as such:

Then create two more folders, “atlas0” and “atlas1”. Those are your command map images and display. In the quick.bundle, extract the appropriate files and edit it to what you desire. Keep in mind, that these are part of the map, so if you want dayglow pink, you will see it on your map, but if that floats your boat… it’s your ocean ;). Seriously we’ll edit it blackish/bluish so you can see the underlying images. So when you open your Tactical Map:

Last but not least, extract the mission05/xml/ambient_cubes.bin into the “mission03/xml” folder, as that handles the rendering aspect.

As you can see, you can’t get all, but that’s just a matter of working with it.