Star Wars: Battlefront 2 (Classic, 2005)

Star Wars: Battlefront 2 (Classic, 2005)

159 ratings
Scarif: Modding Starter Kit - A Guide To BF2 Modding
By D.onizaki
This is a complete guide to the modding kit provided at http://www.moddb.com/games/star-wars-battlefront-ii/downloads/scarif-modding-starter-kit-ch1-level-design
This guide and modding kit are both designed by myself (Gogie on gametoast.com, Steam account gogienator7 username D.onizaki, Moddb username D.Onizaki)

This guide is meant to help you, the new modder get from start to finish the best results for you map by providing you high quality content as a starter kit and to help modernize Battlefront 2.
3
   
Award
Favorite
Favorited
Unfavorite
Introduction
Are you new to the community and always wanted to make a map? but never had the time or dedication to be able to go through 12+ years of tutorials on how to make your own? Maybe your an ambitious experienced modder looking for new resources or brushing up on some basic modding knowledge? either way this is going to be the right thread for you.

FIRST: you will be able to download the starter kit at: http://www.moddb.com/games/star-wars-battlefront-ii/downloads/scarif-modding-starter-kit-ch1-level-design

This is intended to be a starter pack aimed start to finish on how you can create, modify and polish your content in a way that can make your map be the best it can be.

In this tutorial series we will be looking at brand new Starter Packs, containing models, odf's, sky boxes and much much more showing you from start to finish how everything can be made.

Included in this series will be:

Models / Props (how to make, place and texture)
AI pathing for each prop
Barriers and Boundaries
Render flags (for optimal viewing)
Sky box parameters
Sky box objects
Foliage

and much much more as more content is added.

All the content in this thread will be the objects used in my current map project: Scarif Map Pack (Scarif Imperial Landing Zone In Alpha)

As I complete more content you can expect to see more of these starter kits and tutorials coming out, including, Custom sides how to make / polish, Custom Weapons, Custom Sounds, and much more.


Now first:
Section 1: Before We Get Started
In this section we will supply the links to all the necessary tools you will need for modding many of these tools you will be using at different times or may not need to use right away but its always best to have them on hand.

Scarif: Modding Starter Kit Chapter 1
(Download Link Here )
BF2_Modtools
(Download Link HERE[gamefront.online])

This will be the root for everything we need to make our battlefront 2 map or mod, this contains all the necessary compiling tools as well as the assets for the game itself, our level designer almost everything we will be using comes from this.

Fixed Munge Files
(Download Link Here[drive.google.com])
Credits to Gametoast User: Marvel4 for this

We will need this in order to even munge our maps on anything windows vista and up I will walk you through the installation of this later in section 2.1

Autodesk XSI Modtool 7.5
(Download Link Here)
This will be our tool for making our own new and unique models

XSI ZETOOLS
(Download Link Here[schlechtwetterfront.github.io])
Credits to Gametoast User: Andeweget for creating this amazing and comprehensive tool for us to export our files.

A Very Much needed exporter for XSI, this may have slightly more complicated install instructions than our other tools but believe me follow them to the letter cause we need this tool. You can view install instructions at the link provided on github.

GIMP
(Download Link here[www.gimp.org])
This tutorial series will be using all textures made with gimp, feel free to use your own personal favorite editor but I will be showing how I do all my textures with GIMP

xNormal
(Download Link Here[www.xnormal.net])
We will be using this to make all our normal map textures for Render flags (more about this in future sections)

Zerteds unofficial 1.3 patch
(Download Link Here[www.gametoast.com]; Download link at top of first post)
Credits to Gametoast User: [RDH]Zerted for making this amazing patch
this will be needed for us as we move onto custom scripting later for full details on how this works view the thread on gametoast Here[www.gametoast.com]
Section 2: Getting Started
In this section we are going to run through the basics of modding in Battlefront 2, Zero editting, The interface, adding the sky and background, and setting up our world to be just right for our mod map.
Section 2.1: Making Our New Map
Throughout this series to help you grasp how this mod maps asset packs function I am actually going to show you at the exact same time as I am building my new map Scarif: Cargo Zone. You can expect more assets to be released as this tutorial progresses as a result, remember my goal here is to help you learn and create a brand new asset pack for the community.

So without further delay, go to your BF2_Modtools folder; This in most cases should be located in C:\BF2_Modtools. Once inside look for a folder called data and then inside that folder find another folder called build. Inside the build folder open up the file named "ModTools VisualMunge". here you will see a interface with a number of dialogue boxes pop up.

In the upper left corner your going to want to give you map a 3 letter name, try not to use something common or something other popular mods are using just so your map doesn't conflict with other peoples. For this I am naming my mad BSC however you can name your 3 letter folder what ever you like and throughout this tutorial series just replace BSC with whatever you used.
(This is highlighted in the Red Box)

To the right of that box you will see the map name, This will be the displayer name at the instant action screen and the name at the top left of the loading screen in game, your going to want to place whatever planet name your working on first, as letters in the instant action menu get cut off, players can find your map easier if you name it the planet, or something easily findable in a mess of other letters. So this tutorial series I'm going to go ahead and name my map Scarif: Cargo Zone.
(This is highlighted in the Blue Box)

under that you will see your world description box. When you select a map on the instant action screen this will be the box that shows a brief description of what your map is. For this I am going to write: "Rebel forces aiding in the capture of the Death Star plans aim to take down the Imperial Supplies at their Cargo Zone." however you can write whatever you feel is appropriate for your map.
(This is highlighted in the Green Box)

to the far left if you check "Space Map" a different dialogue will show up with space modes, lets ignore this for now and get down a ground map mode first. (I promise I'll touch up on Space Maps later during production of Space: Scarif) Now if we look under the click box we see our basic game modes. you can select any game modes you want to feature in your map; for now I am only going to click conquest, this is in part due to the fact conquest is the most played game mode, and also because I intend to teach you how to manually add game modes later.
(This is highlighted in the Purple Box)

Finally After all that is done Click "Create World"
(This is highlighted in the Pink Box)

After world creation is completed and you get a pop up notice Navigate back to your BF2 Modtools folder, you will now notice a folder with your 3 letter name is there (in this case it is called data_BSC for me but your will be whatever your 3 letter folder was called) Go inside your data_BSC folder, and find the folder called _build and find the modtools visualmunge file in there, when you open that file keep all the default selections as they are and just click "Munge" this will begin to compile all our level data and create our new world to be played.
if you are using windows Vista or higher you may notice this munge has take less than a few seconds... well guess what.. if we try to load this level right now into BF2 we will notice it either does not show up or will crash on load... This is because we need a set of fixed munge files to make the program work.

Once you have the fixed munge files simply open the folder called data from wherever you extracted data.7z from the download link and copy the contents of this folder (you should see 2 folders (_Build / Animations) and 3 .bat files (soundclean.bat, soundmunge.bat, soundmungedir.bat) copy these and paste them in your data_BSc folder directly, when promted to overwrite click copy and replace for everything. if you want you can make duplicated of all files as back ups but i assure you this is not necessary)

After you have copied and replaced the munge files go back into your data_BSC\_BUILD folder and run modtools visualmunge again, again keep all default settings and just quickly click "Munge" Upon completion load battlefront, go to the instant action menu and click your map, launch it in whatever game mode you want and it should now load in with no problems. But wait we are just on an empty patch of land with a few cps. Its time to make things interesting, and time to set the stage, we will start in the next section by making our scarif skybox.
Section 2.2: Setting The Skybox
First if you are completely following this starter kit set, copy the files from the Scarif_StarterKit1\Assets\World1 folder into your data_BSC\Worlds\BSC\world1 folder.

now for the fun the first thing we are going to look at is the sky dome, we done want yavin anymore, that is far too glowy for us and just seems out of place for our tropical sort of setting. So first we will introduce our new sky dome model; in this case I have included the sky dome for Scarif in a file called sky_scarif_1.msh.

HOW TO APPLY IT:
in your data_BSC\Worlds\BSC\world1 folder look for a file called "BSC.sky" and open it with your favorite text editing program (for me its notepad, none of that fancy technology for this guy)
scroll down in this file until you find an area called DomeInfo()

it should look like this:
DomeInfo()
{
Texture("sky_yav2");
Angle(-90.000000);
Ambient(255.000000, 255.000000, 255.000000);
Filter(1);
Threshold(150);
Intensity(50);

Softness(1);
SoftnessParam(60);

DomeModel()
{
Geometry("sky_yav2");
}


}

all we are going to do is change our texture and model, now for our current sky dome, the Scarif sky's model name is sky_scarif_1.msh, so removing the file type, we simply place sky_scarif_1 under the area that says Geometry.

This should now read out:
Geometry("sky_scarif_1");

now we need to apply the texture for our sky dome if we look at the assets in our world1 folder our sky's gradient textures name is sky_scarif_1.tga, so simply where it says 'Texture" we just fill in the quotations with sky_scarif_1 (our texture name)

This line should read:
Texture("sky_scarif_1");

and now this DomeInfo section should look like this:
DomeInfo()
{
Texture("sky_scarif_1");
Angle(-90.000000);
Ambient(255.000000, 255.000000, 255.000000);
Filter(1);
Threshold(150);
Intensity(50);

Softness(1);
SoftnessParam(60);

DomeModel()
{
Geometry("sky_scarif_1");
}


}

at this point, feel free to return to your data_BSC\_BUILD folder and run visualmunge again, you can just run it with the defaults clicked again. This time when you load it in BF2 you will see our nice sky dome with a gradient texture.
Section 2.2.1 Adding Our Clouds
So now that we have a nice and fancy gradient we are going to want some clouds to make it look less empty. so Navigate back to the if you already have copied all the world1 assets from Scarif_starterkit1 you should be set, if you havent you will need to navigate to Scarif_Starterkit1\assets\world1 and find two files one named brs_sky_clouds.msh and one named brs_sky_clouds.tga and have them in you data_BSC\worlds\BSC\world1 folder

After you have the appropriate files go back to our sky file (named BSC.sky) and open it again in your favorite text editting program, and scroll down to the section we were editting in the last section of this tutorial. The section at this point should look something like this:

DomeInfo()
{
Texture("sky_scarif_1");
Angle(-90.000000);
Ambient(255.000000, 255.000000, 255.000000);
Filter(1);
Threshold(150);
Intensity(50);

Softness(1);
SoftnessParam(60);

DomeModel()
{
Geometry("sky_scarif_1");
}


}

now all we have to do to add our clouds is to create another DomeModel() inside the sky box code block (so it will have to be between the very top "{" and the very bottom "}" here) to do this we simply add the same lines as before but this time, since we are calling a new sky model, we will add the lines "Offset" and set this to 0.5 this will place our clouds slightly underneath the map so when flyers or freecam players are roaming around we dont see the edge of the mesh from the bottom of the terrain. Now we will also add the line MovementScale and set it to 0.992 this makes it so when the camera moves the mesh shifts ever so slightly, too much then when we move itll not move at all and too little, and when we move itll completely follow us. Your going to want to place this DomeModel() under the last called DomeModel() for the sky dome itself.

So our complete code for this section should now look like this:

DomeInfo()
{
Texture("sky_scarif_1");
Angle(-90.000000);
Ambient(255.000000, 255.000000, 255.000000);
Filter(1);
Threshold(150);
Intensity(50);

Softness(1);
SoftnessParam(60);

DomeModel()
{
Geometry("sky_scarif_1");
}
DomeModel()
{
Geometry("brs_sky_clouds");
Offset(0.5);
MovementScale(0.992);
}


}

Feel free to munge at this point and see that ingame we have our new sky clouds added in, and that our sky looks a little less barren. Again when you munge just keep the defaults selected for now so we arent munging unnecesary data (Default is just BSC selected as a world and common checked)

Section 2.2.2: Adding Our Death Star
So now we have a set of clouds in the sky, and a sky dome, but what about our Death Star? Remember (if you've seen Rogue One) the Death Star appears over the horizon with the dish slightly above the clouds. For the sake of making reference and paying tribute to this we are going to go ahead and put a Death Star in the sky. If you do not want a Death Star in your sky feel free to skip this entire section, nothing new is added here.

If you have already copied the entire folder from Scarif_Starterkit1\assets\world1 you are already set to continue, if you have not we will be referencing 3 files (end_sky_dome_sat.msh, end_sky_dome_sat.msh.option, and end_bldg_satalite_sprite.tga) these are just reskinned assets from endor >.> I got lazy and didn't rename them but they are a DeathStar :D.

Okay so opening up our sky file again (BSC.sky) following the exact same steps as the last section to add the clouds we just add in another mesh into the sky. So create a new DomeModel() with the exact same parameters and place it under the clouds DomeModel(), place in this piece end_sky_dome_sat.msh. so your completed section for this should read out like this:

DomeInfo()
{
Texture("sky_scarif_1");
Angle(-90.000000);
Ambient(255.000000, 255.000000, 255.000000);
Filter(1);
Threshold(150);
Intensity(50);

Softness(1);
SoftnessParam(60);

DomeModel()
{
Geometry("sky_scarif_1");
}

DomeModel()
{
Geometry("brs_sky_clouds");
Offset(0.5);
MovementScale(0.992);
}

DomeModel()
{
Geometry("end_sky_dome_sat");
Offset(0.5);
MovementScale(0.992);
}


}

Thats it thats all, just munge with your defaults again, and check to see if the Deathstar is now behind the clouds in your sky!.

Section 2.2.3: Adding Our Sun
Scarif seems to be coming along with our sky dome now set up; but it stills seems off. At this point lets add a sun to make it seem more like a tropical place. For this simply navigate to you data_BSC\worlds\BSC\world1 folder and create a new text file, name it BSC.fx (or whatever oyur 3 letter worlds name is) make sure you are naming it with the appropriate file extension .fx, some users with a folder option for hide known file types may need to go to control panel > folder options to adjust this.

okay now with our .fx file created simply copy and paste the following code to add your sun.


SunFlare()
{
Angle(120.000000, -30.000000);
Color(255, 255, 255);
Size(5.0);
FlareOutSize(40.0);
NumFlareOuts(40);
InitialFlareOutAlpha(70);
HaloInnerRing(0.0, 255, 255, 255, 255);
PC()
{
HaloMiddleRing(10.0, 255, 200, 0, 128);
}
HaloOutterRing(40.0, 255, 127, 0, 0);
SpikeColor(230,230,0,128);
SpikeSize(9.0);
}




Effect("hdr")
{
Enable(1)
}

if at this point we munge and look around the sky we will see our sun above the clouds;


Section 2.2.4: Adding Our Flyers Into The Sky Part 1
Our sky is nearly complete but remember on scarif how there was an air battle going on? well we are going to simulate that by adding some fancy flyers into our Sky Dome. First navigate to your Scarif_starterkit1\assets\msh folder and either copy the entire folder itself, or create a new folder in data_BSC\worlds\BSC\ called msh and copy the files you want one at a time into data_BSC\worlds\BSC\msh

now with our shiny new msh folder created if you have not copied all the assets the files we need from the assets for this part are:

all_fly_xwing.tga (xwing texture)
all_fly_ywing.tga (ywing texture)
emp_fly_reaper_dome_1.msh (single Tie reaper Model)
emp_fly_reaper_dome_2.msh (Tie Reaper Model with Tie Striker escorts)
emp_fly_striker_dome_1.msh (Tie Striker single model)
emp_fly_striker_dome_2.msh (Tie Striker Squadron)
emp_fly_tiefighter_dome_1.msh (single Tie fighter model)
emp_fly_tiefighter_dome_2.msh (tie squadron model)
imp_fly_tiefighter.tga (tie fighter texture)
reb_fly_uwing_dome.tga (uwing texture)
reb_fly_uwing_dome_1.msh (uwing with S-Foils in forward position)
reb_fly_uwing_dome_2.msh (uwing with S-Foils in flight position)
reb_fly_xwing_dome_1.msh (single xwing model)
reb_fly_xwing_dome_2.msh (xwing squadron model)
reb_fly_ywing_dome_1.msh (ywing single model)
reb_fly_ywing_dome_2.msh (ywing squadron model)

once you have copied the appropriate files to the msh folder go back to the data_BSC\worlds\BSC\world1 folder and open your BSC.sky file again, now scroll all the way to the bottom after the last } after our last dome models added.

first we are going to add the Uwing to do so we just call for a new function SkyModel(). we can simply add our uwing by calling the msh file from our msh folder like this.

SkyObject()
{
Geometry("reb_fly_uwing_dome_2");
NumObjects(2);
Height(400, 600);
VelocityZ(200, 500);
VelocityY(-20, 20);
Distance(600);
InDirectionFactor(0.5);
}

// in this example Geometry is the msh file called, Num objects is how many will exist at any point in time, Height is how high (min / max number) we want them to be flying, VelocityZ is how fast forward they move, Velocity Y is how fast up and down they will move. Distance is how far they will travel before they dissapear. We only want 2 Uwings of each type for this because there really weren't many of them on scarif.

Munge your map using just the defaults and look around at the Sky to see our wonderful Uwings in the air. remeber there are only two of them and they are pretty far up so take a few moments to look around they move fast and may be difficult to find at first.
Sections 2.2.5: Adding Our Flyers Into The Sky Part 2
now that we know the basic coding behind it just copy and past the same code and make revisions (or you can use the code im using) remember we want an appropriate amount of each vehicle, and we need to change the geometry call to add other flyers. the code I am using is this:

SkyObject()
{
Geometry("reb_fly_uwing_dome_2");
NumObjects(2);
Height(400, 600);
VelocityZ(200, 500);
VelocityY(-20, 20);
Distance(600);
InDirectionFactor(0.5);
}

SkyObject()
{
Geometry("reb_fly_uwing_dome_1");
NumObjects(2);
Height(300, 600);
VelocityZ(80, 120);
VelocityY(-10, 10);
Distance(600);
InDirectionFactor(0.5);
}

SkyObject()
{
Geometry("emp_fly_tiefighter_dome_1");
NumObjects(6);
Height(300, 600);
VelocityZ(120, 300);
VelocityY(-20, 20);
Distance(600);
InDirectionFactor(0.5);
}

SkyObject()
{
Geometry("emp_fly_tiefighter_dome_2");
NumObjects(4);
Height(200, 600);
VelocityZ(120, 300);
VelocityY(-20, 20);
Distance(600);
InDirectionFactor(0.5);
}

SkyObject()
{
Geometry("emp_fly_striker_dome_1");
NumObjects(6);
Height(300, 600);
VelocityZ(200, 500);
VelocityY(-20, 20);
Distance(600);
InDirectionFactor(0.5);
}

SkyObject()
{
Geometry("emp_fly_striker_dome_2");
NumObjects(2);
Height(300, 600);
VelocityZ(120, 300);
VelocityY(-20, 20);
Distance(600);
InDirectionFactor(0.5);
}

SkyObject()
{
Geometry("emp_fly_reaper_dome_1");
NumObjects(2);
Height(300, 600);
VelocityZ(80, 120);
VelocityY(-10, 10);
Distance(600);
InDirectionFactor(0.5);
}

SkyObject()
{
Geometry("emp_fly_reaper_dome_2");
NumObjects(2);
Height(300, 600);
VelocityZ(80, 120);
VelocityY(-10, 10);
Distance(600);
InDirectionFactor(0.5);
}

SkyObject()
{
Geometry("rep_fly_xwing_dome_1");
NumObjects(6);
Height(300, 600);
VelocityZ(120, 300);
VelocityY(-10, 10);
Distance(600);
InDirectionFactor(0.5);
}

SkyObject()
{
Geometry("rep_fly_xwing_dome_2");
NumObjects(2);
Height(300, 600);
VelocityZ(120, 300);
VelocityY(-10, 10);
Distance(600);
InDirectionFactor(0.5);
}

SkyObject()
{
Geometry("rep_fly_ywing_dome_1");
NumObjects(6);
Height(300, 600);
VelocityZ(80, 120);
VelocityY(-10, 10);
Distance(600);
InDirectionFactor(0.5);
}

SkyObject()
{
Geometry("rep_fly_ywing_dome_2");
NumObjects(2);
Height(300, 600);
VelocityZ(80, 120);
VelocityY(-10, 10);
Distance(600);
InDirectionFactor(0.5);
}


notice how I changed the numobjects between different mesh types? this is so our sky is not too littered with different types of models, and instead feels more accurate to how it should look. you can however change these numbers as you want, refer to section 2.2.4 to see what each type of geometry is and how many fighters of each type are in each file.

if we munge and look up to the sky ingame now we can see all our various types of fighters flying around in our sky dome... but they don't quite look yet as if they are fighting... next section we will be adding explosions and lasers to make this feel better.
Section 2.2.6 Adding Flyers Into Our Sky Part 3
Now its time to finally finish our sky file. In this section we are adding the final touches to make our battle overhead look more like a battle, explosions and lasers. First navigate to our Scarif_Starterkit1\assets\ folder and copy the effects folder to data_BSC\worlds\BSC\ or alternatively you can create a new folder in you data_BSC\worlds\BSC\ and name it effects then just copy over the files you need.

from the effects folder if you are adding manually we will need:

com_sfx_laser_blue.tga (blue laser texture)
com_sfx_laser_green.tga (green laser texture)
com_sfx_laser_red.tga (red laser texture)
spa_sfx_skydome_animated_exp.tga (animated explosion texture)
spa_sfx_skydome_explosions.fx (effects file containing our explosions)
spa_sfx_skydome_explosions_2.fx (effects file containing our second type of explosion)
spa_sfx_skydome_explosions_3.fx (effects file containing our third type of explosion)

now that we have our effects file we need our sky dome (if you copied the entire world1 folder you can skip this step) navigate to your Scarif_Starterkit1\assets\world1 folder and find a file called geo_sky_explosions. Copy and paste this file into your data_BSC\worlds\BSC\world1 folder (replacing BRS with whatever your mod maps 3 letter name is)

finally open up your BSC.sky file (inside data_BSC\worlds\BSC\world1)

Scroll down to where we added our DomeModels and right after where we placed our last dome model (either our death star or our clouds) add in the new dome model for the explosions. to do this simply add

DomeModel()
{
Geometry("geo_sky_explosions");
rotationspeed(0.003, 0,1.0,0);

Effect("spa_sfx_skydomeexplosions_2", "hp_sky_4", 1.0);

Effect("spa_sfx_skydomeexplosions_2", "hp_sky_7", 1.0);

Effect("spa_sfx_skydomeexplosions_3", "hp_sky_9", 1.0);

Effect("spa_sfx_skydomeexplosions_2", "hp_sky_11", 1.0);

Effect("spa_sfx_skydomeexplosions", "hp_sky_14", 1.0);


}

// congrats on completing your sky file. If you followed this tutorial from start to finish in section 2.2 your sky file should now look like this:

SkyInfo()
{
Enable(1);
FogColor(85,108,142,128);
PS2()
{
FogRange(0, 0);
NearSceneRange(0.5, 85.0, 100.0);
FarSceneRange(5000.0);
SplitOptions()
{
PropClusterEnable(1);
PropClusterFadeAdj(0.6);
PropClusterDensity(0.1);
}
}
XBOX()
{
FogRange(-200.0, 1300.0);
NearSceneRange(0.5, 85.0, 100.0);
FarSceneRange(3000.0);
NearSplitScreenRange(0.2, 110.0, 160.0);
FarSplitScreenRange(0.0);
SplitOptions()
{
FogRange(5.0, 140.0);
PropClusterEnable(0);
}
}
PC()
{
NearSceneRange(30.0, 160.0, 40.0, 200.0);
FarSceneRange(5000.0, 5000.0);

FarSceneRange(5000.0);
FogRange(-100.0, 600.0);
}

}


DomeInfo()
{
Texture("sky_scarif_1");
Angle(-90.000000);
Ambient(255.000000, 255.000000, 255.000000);
Filter(1);
Threshold(150);
Intensity(50);

Softness(1);
SoftnessParam(60);

DomeModel()
{
Geometry("sky_scarif_1");
}

DomeModel()
{
Geometry("brs_sky_clouds");
Offset(0.5);
MovementScale(0.992);
}

DomeModel()
{
Geometry("end_sky_dome_sat");
Offset(0.5);
MovementScale(0.992);
}

DomeModel()
{
Geometry("geo_sky_explosions");
rotationspeed(0.003, 0,1.0,0);

Effect("spa_sfx_skydomeexplosions_2", "hp_sky_4", 1.0);

Effect("spa_sfx_skydomeexplosions_2", "hp_sky_7", 1.0);

Effect("spa_sfx_skydomeexplosions_3", "hp_sky_9", 1.0);

Effect("spa_sfx_skydomeexplosions_2", "hp_sky_11", 1.0);

Effect("spa_sfx_skydomeexplosions", "hp_sky_14", 1.0);


}


}

SkyObject()
{
Geometry("reb_fly_uwing_dome_2");
NumObjects(2);
Height(400, 600);
VelocityZ(200, 500);
VelocityY(-20, 20);
Distance(600);
InDirectionFactor(0.5);
}

SkyObject()
{
Geometry("reb_fly_uwing_dome_1");
NumObjects(2);
Height(300, 600);
VelocityZ(80, 120);
VelocityY(-10, 10);
Distance(600);
InDirectionFactor(0.5);
}

SkyObject()
{
Geometry("emp_fly_tiefighter_dome_1");
NumObjects(6);
Height(300, 600);
VelocityZ(120, 300);
VelocityY(-20, 20);
Distance(600);
InDirectionFactor(0.5);
}

SkyObject()
{
Geometry("emp_fly_tiefighter_dome_2");
NumObjects(4);
Height(200, 600);
VelocityZ(120, 300);
VelocityY(-20, 20);
Distance(600);
InDirectionFactor(0.5);
}

SkyObject()
{
Geometry("emp_fly_striker_dome_1");
NumObjects(6);
Height(300, 600);
VelocityZ(200, 500);
VelocityY(-20, 20);
Distance(600);
InDirectionFactor(0.5);
}

SkyObject()
{
Geometry("emp_fly_striker_dome_2");
NumObjects(2);
Height(300, 600);
VelocityZ(120, 300);
VelocityY(-20, 20);
Distance(600);
InDirectionFactor(0.5);
}

SkyObject()
{
Geometry("emp_fly_reaper_dome_1");
NumObjects(2);
Height(300, 600);
VelocityZ(80, 120);
VelocityY(-10, 10);
Distance(600);
InDirectionFactor(0.5);
}

SkyObject()
{
Geometry("emp_fly_reaper_dome_2");
NumObjects(2);
Height(300, 600);
VelocityZ(80, 120);
VelocityY(-10, 10);
Distance(600);
InDirectionFactor(0.5);
}

SkyObject()
{
Geometry("rep_fly_xwing_dome_1");
NumObjects(6);
Height(300, 600);
VelocityZ(120, 300);
VelocityY(-10, 10);
Distance(600);
InDirectionFactor(0.5);
}

SkyObject()
{
Geometry("rep_fly_xwing_dome_2");
NumObjects(2);
Height(300, 600);
VelocityZ(120, 300);
VelocityY(-10, 10);
Distance(600);
InDirectionFactor(0.5);
}

SkyObject()
{
Geometry("rep_fly_ywing_dome_1");
NumObjects(6);
Height(300, 600);
VelocityZ(80, 120);
VelocityY(-10, 10);
Distance(600);
InDirectionFactor(0.5);
}

SkyObject()
{
Geometry("rep_fly_ywing_dome_2");
NumObjects(2);
Height(300, 600);
VelocityZ(80, 120);
VelocityY(-10, 10);
Distance(600);
InDirectionFactor(0.5);
}

// at this point if you munge you will see a number of amazing changes to the sky dome that make it feel like your in a combat zone... now moving on to terrain and our worlds design :)
Section 2.3 Setting Up Terrain And Our World
So now that we have our sky dome all figured out its time that we familiarize ourself a little bit with ZeroEditor (or ZE) and learn how to map and create our own little nifty world. So first locate the ZE inside your data_BSC folder; it is the .exe file typically found at the very very bottom of the folder called ZeroEditor; The very first thing you are going to want to do when you get into ZE is load your world. Look at the very top left corner of the screen once its loaded and click Load.

once prompted to find your .wld file navigate to data_BSC\worlds\BSC\world1 and look for a file called BSC.wld (or whatever your 3 letter world name is.) when prompted to select our layers simply click okay, this will by default load all of our layers... there are really only a few exceptions for when we dont want to load these but more on that later.

now that our world is loaded lets familiarize ourselves a little with ZE's control scheme.

for now we will just stick to the basic controls:

so as with the battlefront game itself:

'W' key is to move forward
'S' key is to move backwards
'A' key is to pan/strafe left
'S' key is to pan or strafe right

Now for camera rotation:

Use the arrow keys to move your camera up, down left or right

notice your cameras moving a little fast?

simply use '<' key to slow the movement speed.

is it moving too slow now? use the '>' key to speed up. pretty basic and this is 90% of the controls we use in this. Once you've got a feel for movement its time to move on to actually creating our world.
Section 2.3.1 Setting Up Our Base Terrain And "Fake" Water
First if you haven't already done so load your world into ZE following the instructions layed out in Section 2.3.

If you look in the upper Right hand corner of the screen you will see a button that says "Terrain" in a column labelled "advanced" click on terrain and when the prompt comes up look at the very bottom of the pop up for a button called "create new terrain" click this.

Now because of how large Scarif actually is and how much space we will need for our background, i'd reccomend at a minimum a terrain of 512X512 units... which is exactly what we are going to use. So fill in Width and depth fields both with 512 and 512.

IMPORTANT NOTE: terrain must be in dimensions that are powers of 2 (so 64x64, 128x128, 256x256, 512x512 or 1024x1024)

now you may notice just a blank black grid at first with the new terrain, dont worry we will be filling this in later. for now if you want to get rid of the wireframe in the top left side of the screen, to the centre of the screen you will see a small area title "terrain view" if you click "Solid" it will bring us to our default view, our terrain however has no texture so it will appear blue, dont worry we will get around to texturing this in a bit.

Now before we actually edit the terrain we need to get our water assets. First go to our Scarif_starterkit1\assets\odf folder and copy either the entire folder, or create a new folder called "odf" in data_BSC\worlds\BSC\...

now if you are adding the assets manually in the msh folder you will need to find the following files for our fake water:

From Scarif_Starterkit1\assets\msh

BRS_Prop_Water.msh (this is our large water mesh for the background)
BRS_Prop_Water.msh.option (option file to tell game this model has no collision)
BRS_Prop_Water_Texture_1.tga (Texture for our water)
BRS_Prop_Water_tile.msh (a smaller tile used for the main world and land)
BRS_Prop_Water_tile.msh.option (option file to tell game this model has no collision)
BRS_SAND_MAIN_1.tga (terrain texture for under our large tile need this to blend color)

from Scarif_Starterkit1\assets\odf

BRS_Prop_Water.odf (ODF file for our large water mesh)
BRS_Prop_Water_tile.odf

now begin by clicking object mode in Zero editor.
once in object mode click on browse, and go to our odf directory (located at data_BSC\worlds\BSC\odf) and click on BRS_Prop_Water_tile. click on the button that says place and where it says height set it to 1 and click the lock button.

now begin to place your tiles in a large square, these tiles are designed to be 13x13 so place the correct number of them, make sure you line up the edges as each one is meant to fit with eachother. This may seem time consuming but its a necessary part of our map.
You may notice if you overlap your edges become dark, you can adjust the placement of these objects after you have placed them by clicking "Select" then holding down the 'C' key and clicking either the left or right mouse button to move them along either the X or Z axis... to adjust height you can also click the centre mouse button.

after you have placed 13x13 tiles of water click the browse button again and find the file BRS_Prop_Water.odf in your odf folder. place this with the hole around your 13x13 water tiles. you will notice it fits almost perfectly to these tiles, make sure the edges of the tiles are touching so it doesnt show a seam ingame. You should now have a rather large ocean at your disposal.
So... at this point you may wonder... why not add the much better quality water that comes with the game? Because of hardcoded render limits, as we add more trees, textures, objects the game will begin to crash more frequently with standard water. Also if you add more than 30x30 tiles of real water, the game will crash when trying to load the map after loading a stock map. If you have 50x50 water and a few objects the game can no longer even handle the map. Simply put the games hardcoded limits prevent us from having the water amount we really need for Scarif.

Now Why isnt our water shiny? (or have specular lighting?). Because, with tiles like this as a player views from a distance the low rez uses different render methods than the high rez, adding specular and viewing these tiles make it obvious its tiled which we want to avoid. The best graphic solution is simply to add only transparency as a flag.

Now finally a question we may be asking... With an object limit of only 1024 why waste so much of that on water tiles, cant we just use one big water mesh? well unfortunately we can't, you see when an object this large is loaded, if other objects infront of it are far enough out of range, our renderer still places priority to rendering our water, this makes it so if our water is one big object it renders overtop of any objects infront of it. Basically our best solution is to break it into smaller tiles.

Once your water is set feel free to munge and test it, you should have a murky sort of look in game due to the fact our terrain comes out black. so lets fix that shall we :).
Section 2.3.2 Making And Texturing Our Terrain
So if you have already copied the contents of Scarif_Starterkit1\assets\world1 into your world one directory you can skip this manual stuff. If you are adding files manually, to texture our terrain we need to go to Scarif_Starterkit1\assets\world1 and copy the following files to data_BSC\worlds\BSC\world1

BRS_Green_1.tga (texture for our ground under the trees)
BRS_SAND_MAIN_1.tga (our main sand texture)
BRS_SAND_MAIN_2.tga (our secondary sand texture)
BRS_SAND_MAIN_3.tga( a variant texture for detailing)
BRS_SAND_MAIN_4.tga (another variant detail)
BRS_SAND_MAIN_5.tga (yet another variant for flavor)

once these files are copied open zero editor and select texture mode, to make it easier for us to see our terrain for this go to the very top of the ZE screen and make sure objects in not highlighted (this will hide all our objects which includes our water tiles for quick viewing)
on the far right of our screen while in texture mode you will see a side bar that says tile. click the box that appears either black or says 0 (the first box) this is our lowest layer we want this to be our basic sand texture. With 0 layer highlighted then click browse under where it says "texture:" to get a texture for this slot. In this case select BRS_SAND_MAIN_1.tga from our world1 folder.

Now under where it says size: fill the text boxes for both height and width with 100 each, this will increase our overall brush size. where it says pressure turn this to 100 (this adjusts our brushes optacity). finally click away, you can drag and drop to paint faster, paint as much of the terrain as you can with this texture all the way to the edges where it becomes one big square again. We want to do this so our terrain no longer appears black. as 0 is our lowest layer we can still paint over it later with other textures so dont worry about having too much of this texture for now. remember as you paint we have view limits on our camera so you may not be able to see the whole terrain all at once, so just move along with your camera and keey painting.

your terrain should now look something like this:

feel free to munge and view ingame how our terrain looks under the water now, and how much less murky our water looks.
Section 2.3.3 Adding Our Global Light / Raising Our Terrain
At this point if you have loaded our water ingame still looks a little murky and less tropical part of this problem is a lack of global lighting.

Load up ZE and click on the tab that says light.
Next click on the button that says Place and then where it says "type" click the button that says "dir", this will help us set a directional light.

Basically your directional light is going to be your global world lighting. simply click anywhere to place this first light. Once placed click the button that says "select" next to our first "place" button and select the light you just placed (again make sure its a DIR light, if its not after you select it you can change its type by clicking the "dir" button with the light selected)
now we want this to mimic a suns lighting so simply with the light selected hold down the "x" key and it will allow you to rotate (rotate it side to side using centre mouse button, right click and left click, as you rotate the light which area rotates will change as well) so rotate your light until its in a place satisfactory to you, remember the arrows should be pointing diagonal and towards your terrain by the end.

under where it says "name:' rename our like to be 'dirlight' I always use lowercase letters in ZE just because it is case sensitive. now on the right where it says "Directional Light 1" place the name of your light ( I named mine "dirlight") and not click the button under "Cast Shadows" that says yes. if you followed all these steps if you save and munge right now, in game you will notice your terrain will be brighter and your players will now have shadows under them.

Now for raising our terrain and actually making the basis of our map, first a small rule, try to make your map fit inside the single tiled water areas, these are the close range water tile so they will render behind your objects.

now with that in mind enter you height editting mode by clicking the height button, since we want the base part of our terrain to only be a little higher than the water (which is set at height 1) we are going to set our terrain brushes height to 2. So go to foreground: and where it says 0 fill this in with 2. remember with your brush set it to paint it automatically adjusts your terrain to that height. Spray will lightly change it based on your pressure selected. and Raise will raise the terrain, blend is very useful as it will blend 2 heights together. for this tutorial im only going to be using paint as a brush and blend.
so first im going to create my mainland, I want this to curve as later ill be adding ATACT's and I want a start and stop point with a rebel and imperial base at the end. Im planning this map to hav e a total of 8 command posts each with some sort of land mark... So with my planning and what I have for a vision in mind im going to go ahead and heighten my terrain.

brush and heighten your terrain above the water to make your islands. if you mess up either hit ctrl+z or change your background number to 0 and simply right click to lower it back below water.

once you are done munge and check your terrain ingame remember if your command posts are under the terrain you may spawn under ground and fall through the map. Dont worry ill show you how to fix this after we are done with the terrain remember to use the blend brush as well to blend your terrain nicely together.

Section 2.3.4 Coloring / Texturing Our Terrain
To add the finishing touches to our terrain first go back to Texture mode in ZE on the right hand side oyu can click any of the layers without a texture added and add a new texture to it. I am going to Add BRS_SAND_MAIN_2.tga from out world1 folder as a second texture, This texture I am going to add in a small amount onto the beach of the islands, since it has a little more of a immediate beach sand sort of feel to it.

before painting hwoever select layer 0 and where it says "tile range" fill this with 9, this will reduce the tile range on our texture to fit it closer together, all the rest of the textures we use you will want to do the same just to give it a more appropriate sort of visual appearance ingame.

Now following those same steps, I use BRS_Green_1.tga to brush where I am going to want to place my trees and foliage in the map I dont want too many trees but I still want it to look like scarif, I also want to leave enough space to add objects and buildings later. The other textures ive included are more meant for adding smaller details and grooves into your terrain so we will add those after adding objects just so they dont interfere with our level.

Now as for planning, for planning where everything will go I usually use color mode first to mark where things will go and where to not put trees, foliage or other objects that may interfere with the map. so A little about color mode: Color fill will fill the world with one color, otherwise notice the brushes are the same as the burshes we use for texturing and height and operate the same way. If you want to erase color from your world simply set your forground color to 255/255/255 which is white. WHITE ERASES COLOR. Now for my planning I went ahead and simply colored portions of my Terrain:
Here is the layout and plan as it stands:

Blue: Cargo Zone (AT-ACT spawn point)
GreenishBlue: Imperial Barracks
Yellow: Imperial Comm Tower 1
PinkishRed: Imperial Cargo Holding Area
Green: rebel Landing Zone 1
Brownishgold: imperial comm tower 2 (rebel controlled)
Purple: Rebel Landing Zone 2
Red: Uwing landing zone/ Rebel Landing Zone 3

if you munge at this point you will see our marking colors in game, which is why they are removed as the planning comes down. Coloring to plan is optional, I like to use it for organization while I add my trees / foliage.

Section 2.3.5 Moving Our Current Command Posts
So now that we have our fancy terrain set up, we are going to need to move our command posts and spawn regions and add some command posts for now so we have an idea of where everything will be and how it will be spaced apart. And so that we can begin to actually spawn our units within the map and terrain (incase spawning has been an issue for you).

So first: understand that this part of the tutorial will be explained for the gamemode conquest; if you are looking on how to add CP's into other gamemodes this will be explained in a later section, although its roughly the same idea.
So load up our world into ZE, first go to the middle section of the screen where it says "active layer" click this and when a prompt window appears click conquest. you should now see [base] be replaced with conquest in your active layer.

Now a quick way to find our positions of our default command posts is to click the Region tab. We wont actually be editting this tab but if you scroll around we will see 4 cyllinders... This is where our command posts are.
Now go to Object mode tab and under where it says "Name" click CP 1, we will now drag this to our desired location, press and hold the "C" key and click either the left or right mouse button to move it along the Z or X axis. If you need to adjust its height, press the middle button. If you notice your not able to move it a certain amount that you want (its just a little bit that you need but not too much) simply go to where it says "Snap To:" and make sure "Grid" is not highlighted, this will allow free movements (with grid highlighted it will always move the amount of units that the slider under "Grid" is set to, default is 1 unit)
I like to keep my command posts in a progressive order so command post 1 will be at the rebel side and command posts will gradually move in number from island to island as cp1 - 2 -3 -4... this is my personal preference for organization and finding things. If you have trouble finding your command post try setting its height higher than it needs to be so you can see its movement cross... I usually set my command posts at height 100 than lower them to fit the terrain later just so I can find them.
Once you have placed your basic default 4 command posts where you would like them go to the regions tab again. This time make sure "select region" is highlighted and then click the regions from the "regions:" box, drag cp1_capture over top of cp1 then repeat this for all the remaining command posts we have placed. Again we can drag our regions by using the "c" key the same way we did our command posts.
Finally after all your regions are placed correctly and you are ready to move on its time to place our spawn paths in the correct place. Go to the Paths tab, I recommend at this point hiding your objects by clicking the "objects button" under where it says "show:" because your paths may be hiding uder some water. if you still cant see them and they may be hiding under the terrain you can click "color" under where it says "terrain view" this will only display our color (remember we use this as a tag for where we drop important things? you can use color to mark your command posts then drag your paths)

to drag your paths you do not need to click 'C' just right click on the path and when you hover your mouse over and see the whole path light up and drag and drop. if you notice the path is not high enough you can adjust it's height by holding down the 'shift' key. You can also move individual nodes of the path in the same way except by left clicking instead if they are in object or not high enough. If you are in color mode once your paths are visible you can click solid to instead make sure they fit around your actual command post. (make sure you enable objects visibility again under "show:" first.

After your paths and regions are set with these command posts Save and munge and test to make sure 1) all the command posts are capturing properly. and 2 You can spawn properly at all the command posts. If you cant; double check to make sure your command posts spawn / capture regions/paths are in the correct place.

Section 2.3.6 Adding New CP's
Finally we are going to finish our command posts by adding our remaining command posts to the map. So first to add a new command post switch to our conquest layer again. (see Section 2.3.5 for details on switching our layer).

Once inside our conquest layer go to object mode, and where it says browse, browse to your data_BSC\Common\odfs folder and find a file called com_bldg_controlzone.odf. once loaded make sure your edit object: mode is set to "place" and place the command post where you want. (you can choose the select object and move its position with the 'c' key if need be to get it to just the right place)
now switch to path mode. Once in path mode click the new path button. You should now see a
path named Path#(whatever number of path it is).... Under where it Says "Path Name" type cp5_spawn (all lower case letters). Once it is named make sure the "add Node" button is highlighted and click on your terrain to add nodes. You can highlight the "move" button after and use your left mouse click button to drag individual nodes into the right place now if need be.
now go back to our object mode and click the cp you placed earlier. first mane sure in the "name" field it says "cp5" (or whatever cp number your on now) ; make sure the team is set to what team you want the cp to be in the team field. (1 is empire, 2 is rebels by default). Now under the Field where it says "spawnpath" type the name of the spawn path we just made in the paths tab (in this case cp5_spawn). Now we can spawn from this command post.
Now we just have to add a capture region to this. so go to the regions tab. once inside Regions click the new ground button then under where it says "shape:" make sure cyllinder is highlighted. place oyur cyllinder on the map then adjust it under where it says "height" to how big you want the capture region to be (I set mine to X6, Y6, X6 since this is the defaults given with a new map) finally press the 'c' key and drag the region to where you need it to be... typically the region will be created higher than you need it to be, lower it to be at the terrain with the actual command post object. At the top where it says "region ID:" name this cp5_capture and beside that where it says class properties: type again cp5_capture.

The final step: select cp5 in object mode and on the far right of the screen where it says "captureregion" fill this in with the name of the region we just created (in this case cp5_capture).

Now in order for our command posts to work properly in conquest we need to script it into our missions lua file. So Navigate to data-BSC\Common\Scripts\BSC and look for a file called BSCg_con (or BSCc_con if your looking for clone wars) now open this file.

scrolls down until you see

--This defines the CPs. These need to happen first
cp1 = CommandPost:New{name = "cp1"}
cp2 = CommandPost:New{name = "cp2"}
cp3 = CommandPost:New{name = "cp3"}
cp4 = CommandPost:New{name = "cp4"}


all we need to do here is add our commmand post, this uses the name we entered into the name field in ZE. so type "cp5 = CommandPost:New{name="cp5"}

so this section should now read

--This defines the CPs. These need to happen first
cp1 = CommandPost:New{name = "cp1"}
cp2 = CommandPost:New{name = "cp2"}
cp3 = CommandPost:New{name = "cp3"}
cp4 = CommandPost:New{name = "cp4"}
cp5 = CommandPost:New{name = "cp5"}

next scroll down til you see

--This adds the CPs to the objective. This needs to happen after the objective is set up
conquest:AddCommandPost(cp1)
conquest:AddCommandPost(cp2)
conquest:AddCommandPost(cp3)
conquest:AddCommandPost(cp4)

and again add a line for our new command post to make it read this:

--This adds the CPs to the objective. This needs to happen after the objective is set up
conquest:AddCommandPost(cp1)
conquest:AddCommandPost(cp2)
conquest:AddCommandPost(cp3)
conquest:AddCommandPost(cp4)
conquest:AddCommandPost(cp5)

Now just save the .lua file and munge and your command post should work perfectly if you followed all these steps, again try to test it, spawn from it and capture it to make sure it all works fine.

Repeat this as many times as you need for your command posts (maximum is 16)


Section 2.4 Adding Objects / AI Pathing
Section 2.4 will be set around how to place objects in the world we make, and also to set up some AI pathing.

Remember BF2 AI are not very clever and we will have to tell them where to go, however this is fairly easy if you make your pathing as you place individual objects and adjust it as you go along.

Section 2.4.1 Our Basic Web Pathing
so first to preven our AI from reaching dead spots, we are going to set up a basic "web" of Hubs. This web will be modified as we need as we add more objects, obstacles or command posts, for now it is primarily made so our AI can find their way to our different command posts and not get stuck.

An important note here: connect all your hubs and connections in a way that leaves no dead end, each hub should have atleast 2 connections to prevent us from hitting a dead end.

To create your web, open your planning mode in ZE. Then make sure new hub is highlighted in your edit path section. Click anywhere to begin to size the hub you want, and then click again to set the hub. I went through and set up 8 Hubs as my basic map at each of my command posts.

Now when we are ready to add our connections to our hubs. just click "New Connection" we only want our base map for connections to be for soldiers so in the filter tab make sure only sodlier is highlighted. Then to add our connections just click on and hub and then click any other hub to connect them. I'm simply at this phase going to draw a circle for the map.
Section 2.4.2 Adding Trees
First: if you have copied the entire "msh", and "odf" folder you can proceed to our next step, if you havent and are adding things manually the files you will need for our trees are:

from the msh folder:

BRS_Palmtree_Bark_1.tga
BRS_Palmtree_Leave_1.tga
BRS_Palmtree_Leave_2.tga
BRS_Palmtree_Lowrez.tga
BRS_Prop_Palmtree_1.msh
BRS_Prop_Palmtree_2.msh
BRS_Prop_Palmtree_3.msh
BRS_Prop_Palmtree_4.msh
BRS_Prop_Tree_Line.msh
BRS_Prop_Tree_Line_1.msh
BRS_Prop_Tree_Line_2.msh
BRS_Prop_Tree_Line_3.msh

From the odf folder:

BRS_prop_Palmtree_1.odf
BRS_Prop_Palmtree_2.odf
BRS_Prop_Palmtree_3.odf
BRS_Prop_Palmtree_4.odf
BRS_Prop_Tree_Line.odf
BRS_Prop_Tree_Line_2.odf
BRS_Prop_Tree_Line_3.odf

copy these files from Scarif_Starterkit1\assets\ and the odf and msh folder to your data_BSC\worlds\BSC\ odf / msh folders...

next to add our objects in game we simply open ZE and go to the objects mode tab, make sure the "place" button is highlighted in game and then just place our trees. Remember after an object is placed you can control the height of the object placed by pressing the 'c' key and pressing the centre mouse button. Try placing small amounts of trees at a time to make sure none of these are floating ingame and they work well with your terrain.

You dont have to worry about AI pathing around areas with trees so long as they are space apart they are built in a way that the AI will not get stuck.

A little about the trees:

palmtree_1-4.odf's are all individual palm trees

the 3 tree line files are clusters. This deals with object limit, remember we have an object limit of 1024 so place the tree clusters as often as you can to work with the terrain and select the single trees only when you need to.

Section 2.4.3 Adding the Bridges / Flagging Specular Lighting
So for this part if you have already copied the msh and odf folders you can skip ahead to actually adding the objects otherwise:

The files you will need for the bridges from the msh folder located in Scarif_Starterkit1\assets\msh are:

BRS_Prop_Bridge_1.tga
BRS_Prop_Bridge_1_Bump.tga
BRS_Prop_Bridge_Lights.msh
BRS_Prop_Bridge_2_1.msh
BRS_Prop_Bridge_2_2.msh
BRS_Prop_Bridge_2_Lights_1.msh
BRS_Prop_Bridge_1.msh

from the Scarif_Starterkit1\assets\odf folder you will need:

BRS_Prop_Bridge_1.odf
BRS_Prop_Bridge_1_lights.odf
BRS_Prop_Bridge_2_1.odf
BRS_Prop_Bridge_2_2.odf
BRS_Prop_Bridge_2_Lights_1.odf

Now for placement, first swap to object mode in ZE and click the Place button, for the smaller steel bridge we are simply going to go to "browse" and go to our data_BSC\worlds\BSC\odf folder and select "BRS_Prop_bridge_1.odf"... place this bridge where ever you need it to be and rotate it, make sure it is aligned to your terrain how you want it. Simple right? Now we are going to add the lights so first, go back to browse and click BRS_Prop_Bridge_1_lights.odf, place this object in a place nearby where you can easily click it. Next go to Multiselect mode we are going to join both of the objects (Bridge_1 and Bridge_1_Lights) together. So first Right Click anywhere (this will reset your selection, before you snap objects you want to clear your selection otherwise you may snap objects you dont want to snap) next click your bridge (the object we DONT want to move is always the first we select) then with your bridge highlighted click on your lights object. After both are selected click the "Snap Together" button and bam like magic both the bridge and lights fit together perfectly now. I made several of our objects used snapable like this for your convenience. So remember this method cause we will be using it alot. Note: if you are using multiselect you can move all objects you have slected at the same time by pressing the 'c' key or rotate them by pressing the 'x' key so dont be too afraid if you accidently didnt place them right before snapping.
Now at this point if we save and munge we can see our bridge ingame. But theres one problem, why isnt it shiny like in the actual Scarif: Imperial Landing Zone map?

To fix this load your world into ZE and click the Light tab. Next click on the light we selected earlier in this tutorial when we were adding water. (I chose dirlight as my name for it) once you have that light selected simply click "Yes" where it says "Specular". Save munge and check your bridge ingame again to see the difference.
Now for the large bridge; due to polygon limits for exporting objects the large steel bridge has been seperated into different parts. The lights, main bridge and second bridge. So first go back to object mode and browse for an odf file called BRS_Prop_Bridge_2_1.odf, place and rotate this bridge to connect in the same way we did with our first bridge. Next place BRS_Prop_Bridge_2_2.odf in the same way we did with the small bridges lights, somewhere out of the way thats easily clickable. Finally find a odf called BRS-Prop_Bridge_2_lights_1.odf and place it somewhere accessible aswell. Enter multi select mode again, right click first just incase you dont have a clean selection, then select your objects starting first with the object you DONT WANT TO MOVE. then click the lights and the second half of the bridge and click "snap together" finally save and munge and check out your new large bridge ingame.
Section 2.4.5 Adding Crates / Antennas to our bridges Part 1
So for this if you have already copied all of the msh and odf files from our Scarif_Starterkit1\assets\msh and odf folders you can move ahead to actually placing them. If you are adding manually:

Files from Scarif_Starterkit1\assets\msh for crates / antennas

BRS_Prop_Antenna_1.msh
BRS_Prop_Antenna_1.tga
BRS_Prop_Antenna_1_bump.tga
BRS_Prop_Antenna_2.msh
BRS_Prop_Antenna_2.tga
BRS_Prop_Antenna_2_bump.tga
BRS_Prop_Crate_1.tga
BRS_Prop_Crate_2.msh
BRS_Prop_Crate_2.tga
BRS_Prop_Crate_2_Bump.tga
BRS_Prop_Crate3.msh
BRS_Prop_Crate_3.tga
BRS_Prop_Crate_3_Bump.tga
BRS_Prop_Crate_3_Multi_1.msh
BRS_Prop_Crate_4.msh
BRS_Prop_Crate_4.tga
BRS_Prop_Crate_4_Bump.tga
BRS_Prop_Crate_4_Multi.msh
BRS_Prop_Crate_Bump.tga
BRS_Prop_Crate_Multi_1.msh
BRS_Prop_Crate_Multi_2.msh
BRS_Prop_Crate_Multi_3.msh
BRS_Prop_Crate_Single.msh
BRS_Prop_crates_1.msh
BRS_Prop_Crates_2.msh
BRS_Prop_Crates_3.msh
BRS_Prop_Crates_4.msh
BRS_Prop_Crates_5.msh
BRS_Prop_Crates_6.msh
BRS_Prop_Crates_7.msh
BRS_Prop_Crates_8.msh
BRS_Prop_Crates_9.msh
BRS_Prop_Crates_2_1.msh
BRS_Prop_Crates_2_2.msh
BRS_Prop_Crates_2_3.msh
BRS_Prop_Crates_2_4.msh
BRS_Prop_Crates_2_5.msh
BRS_Prop_Crates_2_6.msh
BRS_Prop_Crates_2_7.msh
BRS_Prop_Crates_2_8.msh
BRS_Prop_Crates_2_9.msh
BRS_Prop_Crates_3_1.msh
BRS_Prop_Crates_3_2.msh
BRS_Prop_Crates_3_3.msh
BRS_Prop_Crates_4_1.msh
BRS_Prop_Crates_4_2.msh
BRS_Prop_Crates_4_3.msh
BRS_Prop_Crates_4_4.msh
BRS_Prop_Crates_4_5.msh
BRS_Prop_Crates_5_1.msh
BRS_Prop_Crates_5_2.msh
BRS_Prop_Crates_5_3.msh

Files needed from Scarif_Starterkit1\assets\odf

BRS_Prop_Antenna_1.odf
BRS_Prop_Antenna_2.odf
BRS_Prop_Crate_2.odf
BRS_Prop_Crate_3.odf
BRS_Prop_Crate_3_Multi_1.odf
BRS_Prop_Crate_4.odf
BRS_Prop_Crate_4_multi.odf
BRS_Prop_Crate_Multi_1.odf
BRS_Prop_Crate_Multi_2.odf
BRS_Prop_Crate_Multi_3.odf
BRS_Prop_Single.odf
BRS_Prop_Crates_1.odf
BRS_Prop_Crates_2.odf
BRS_Prop_Crates_3.odf
BRS_Prop_Crates_4.odf
BRS_Prop_Crates_5.odf
BRS_Prop_Crates_6.odf
BRS_Prop_Crates_7.odf
BRS_Prop_Crates_8.odf
BRS_Prop_Crates_9.odf
BRS_Prop_Crates_2_1.odf
BRS_Prop_Crates_2_2.odf
BRS_Prop_Crates_2_3.odf
BRS_Prop_Crates_2_4.odf
BRS_Prop_Crates_2_5.odf
BRS_Prop_Crates_2_6.odf
BRS_Prop_Crates_2_7.odf
BRS_Prop_Crates_2_8.odf
BRS_Prop_Crates_2_9.odf
BRS_Prop_Crates_3_1.odf
BRS_Prop_Crates_3_2.odf
BRS_Prop_Crates_3_3.odf
BRS_Prop_Crates_4_1.odf
BRS_Prop_Crates_4_2.odf
BRS_Prop_Crates_4_3.odf
BRS_Prop_Crates_4_4.odf
BRS_Prop_Crates_4_5.odf
BRS_Prop_Crates_5_1.odf
BRS_Prop_Crates_5_2.odf
BRS_Prop_Crates_5_3.odf

once you have copied all these files (if you are adding manually) proceed to the next section and ill show you how all this fits.



Section 2.4.6 Adding Crates / Antennas To Our Bridges Part 2
So now that we have all our files for crates its time to explain what all these are and how they fit together. First if you are looking for just single crates in object mode browse for:

BRS_prop_Antenna_1.odf has a single beach antenna
BRS_Prop_Antenna_2.odf has a single cyllinder antenna
BRS_Prop_Crate_Single.odf has a single orange crate
BRS_Prop_Crate_2.odf has a single cyllinder Crate
BRS_Prop_Crate_3.odf has a single large green crate
BRS_Prop_Crate_4.odf has a single small blue crate

If you want to simply add crates to your bridges using snapping (which for the sake of our object limit I strongly reccomend):
First NOTE: you can only have one collection of each type of crate per bridge, different types will not collide but having more than one of the same type (so two different sets of orange crates for example) is not what the clusters are built for.

So for the small bridge:

Cyllinder Antennas odf files:
BRS_Prop_Crates5_2.odf

Orange Crate Files:
BRS_Prop_Crates_4.odf
BRS_Prop_Crates_5.odf
BRS_Prop_Crates_6.odf

Cyllinder Crates Files:
BRS_Prop_Crates2_4.odf
BRS_Prop_Crates2_5.odf
BRS_Prop_Crates2_6.odf

Blue Crate Files:
BRS_Prop_Crates4_4.odf

Once you have placed one of each catagory of crates for the smalle bridge feel free to snap them all the the bridge (select the bridge first in multi select then select every type of crate, then snap together)

At this point if you munge you should see all your fancy new bridge decorations in game. Use this page as a reference if need be for what types of crates can snap to the small bridge.

Now for the Large Bridge;

The crates we use for the large bridge are:

Cyllinder Antennas:
BRS_Prop_Crates_5_3.odf

Orange Crates:
BRS_Prop_Crates_7.odf
BRS_Prop_Crates_8.odf
BRS_Prop_Crates_9.odf

Cyllinder Crates:
BRS_Prop_Crates2_7.odf
BRS_Prop_Crates2_8.odf
BRS_Prop_Crates2_9.odf

Blue Crates:
BRS_Prop_Crates4_5.odf

again all these crates will snap together in the exact same way as the small bridge, so simply place one of each crate type you want, select any component of the large bridge first (make sure you clear your selection before selecting anything using right click) then select each crate and snap together. When we munge ingame we can see our new large bridge with pretty crates,

Section 2.4.7 AI Pathing For Our Bridges
Now that we have set up some nice looking bridges with crates it is important to tell our AI how to use the bridges. First lets start with the small bridge: switch to planning mode in ZE; first remember how we set up our basic "web" earlier for our AI pathing when we added our command post, well click "edit Connection" and then select the connection beside our bridge and hit the 'delete' key. Now that we have a bridge set up here we want our ai to use it so delete the old connection. (you can use edit hub mode as well to delete hubs if they are too close to the bridge aswell)

Next Draw our hubs by clicking the "new hub" button like we did earlier when we added command posts. This is essentially a "Railing" the AI use to follow so for the bridge make the hubs very small so the AI can cross and if they roll into a crate snap back on track. You want your hubs / connections to smoothly go through the entire bridge without hitting any crates. You may notice in the screenshot that there are new hubs beside the bridge as well, this is optional, I like to have some AI cross the bridge and others move beside the bridge and storm the beach.

Next go to Barrier mode in ZE.
Barriers are the opposite of Hubs/Connections, instead of telling the AI where to go, they create a barrier telling the AI where not to go. To add a barrier make sure the "new" button is highlighted and simply click to draw a line, then expand the box to create your barrier. The section labelled "ban" tells us which unit this barrier will effect, we dont want anything but soldiers to avoid the bridges so just make sure only soldier is highlighted for now. It should take between 4-6 barriers to cover the "stuck" spots for AI on the small bridge.

Now using the exact same steps as this create your pathing for the large bridge as well. Below is the screenshots highlighting my planning and my barriers as an example.

After you are done setting up your planning and barriers; Save and munge and you will notice the AI now use your bridges :D.
Section 2.4.8 Adding Our Landing Zone Steel Floors / AI Pathing
For this section: If you are adding assets manually you will need the following files from Scarf_Starterkit1\assets\msh:

BRS_Prop_Floor_1.msh
BRS_Prop_Floor_1.tga
BRS_Prop_Floor_1_Bump.tga
BRS_Prop_Floor_2.msh
BRS_Prop_Floor_2.tga
BRS_Prop_Floor_3.tga
BRS_Prop_Floor_4.tga
BRS_Prop_Floor_Sand.tga

from Scarif_Starterkit1\assets\odf you will need:
BRS_prop_Floor_1.odf
BRS_Prop_Floor_2.odf

Now in ZE enter object placement mode, These large steel floor tiles are designed to fit side by side. However for this part Im going to show you how to place crates and place the floor. First Open up BRS_Prop_Floor_2.odf in object mode, For this at CP1 im going to place the floor under the cp so this area seems less blank however I am going to place 2 floor tiles side by side (for crates snapping to fit properly always add 2 floors side by side).

Next to decorate it

The Cyllinder Antennas that fit here are:
BRS_Prop_Crates5_1.odf

The Orange Crates that fit here are:
BRS_Prop_Crates_1.odf
BRS_Prop_Crates_2.odf
BRS_Prop_Crates_3.odf

The Cyllinder Crates that fit here are:
BRS_Prop_Crates2_1.odf
BRS_Prop_Crates2_2.odf
BRS_Prop_Crates2_3.odf

The Large Green Crates that fit here are:
BRS_Prop_Crates3_1.odf
BRS_Prop_Crates3_2.odf
BRS_Prop_Crates3_3.odf

The small blue crates that fit here are:
BRS_Prop_Crates4_1.odf
BRS_Prop_crates4_2.odf
BRS_Prop_Crates4_3.odf

after you have chosen all your crates place the crates to the side of the floors and snap them together, but DO NOT snap the crates to the floor (we will have to move them manuall).
To move them manual after all your crates are snapped together stay in multi select mode and just use the 'c' key to move the entire object cluster together. move it over the two floors until you are happy with their placement.

For AI Pathing simply place your path in a way that goes around all the crates, move or delete old hubs and connections if it is needed. Then when we go into barrier mode simply put a barrier around the large crates that you think the AI may get stuck on.

After you are satisfied with your AI pathing save and munge and check to see if everythng is working and see how it looks.

Section 2.4.9 Adding A Landing Pad / Ai Pathing
SO now we are going to add our landing pad overtop of the steel floor. Is you are adding your files manually from the Scarif_Starterkit1\assets\msh folder we will need:

BRS_Prop_Landingpad_1.msh (note you need the texture from the section where we added bridges)

from the Scarif_Starterkit1\assets\odf folder you will need:
BRS_Prop_Landingpad_1.odf

You will need to place 2 seperate copies of BRS_Prop_Landingpad_1.odf in ZE to get a landing pad ingame, these ARE NOT SNAPPABLE. to place these, place one then use the 'x' key to rotate the second piece 180 degrees, (you can rotate something easily by making sure "snap to: Rotate" is highlighted and in the text field put 90 to lock its rotate by 90 degrees. When you place the bridges the middle polys may be missing this deals with ZE not having a high enough poly limit for the object, it will appear fine ingame however just make sure after its rotate you line up the little metal part of the bridge to connect to the other bridge (shown in picture).

For your planning and connection hubs just make sure the stairs have barriers on them the prevent AI from getting stuck underneath; remember planning is only done on one height level so if you want your AI to come down from the landing pad, make a small hub \ connection then click > edit connection > and click the connection then click "jump" we want our AI to jump off the landing pad not walk down the stairs! if we have them walk down the stairs then other AI will get stuck under the stairs!.

Section 2.4.10 Adding Our ZETA Class Shuttle / Command Post
If you are adding files manually from the Scarif_Starterkit1\assets\msh folder you will need any file that starts with "BRS_bldg_Shuttle" seriously theres a lot of files for this so im not going to write them all out for .msh.

from Scarif_Starterkit1\assets\odf folder you will need:
BRS_BLDG_Shuttle.odf
BRS_BLDG_Shuttle_CP.odf
hot_BLDG_exp.odf

from Scarif_Startkit1\assets\effects you will need:
hot_sfx_shieldgenerator_exp.fx

to place the shuttle as a prop simply go Browse: BRS_BLDG_SHuttle.odf and place it in your world. It may be wise to draw a barrier around the shuttle to prevent the AI from just running into it constantly.

If you want to place a shuttle as a destroyable command post; switch to your conquest layer (at the top centre of ZE see adding command posts section), then enter object mode and place the file BRS-BLDG_Shuttle_cp.odf where you want your command post to be. Next go to paths and create a new path. for this im going to name my path shut1_spawn. draw 7 nodes around the shuttle. Go back to object mode and select your cp and where it says "spawn path" write in shut1_spawn. Go into your .lua file for the mission located in data_BSC\common\scripts\BSC (for this my file is "BSCg_con.lua") and where we added our command posts before just add the name of whatever you named the shuttle in ZE (I named it cp6 for simplicity sake) so for my shuttle my script looks like this in the add command post section:

--This defines the CPs. These need to happen first
cp1 = CommandPost:New{name = "cp1"}
cp2 = CommandPost:New{name = "cp2"}
cp3 = CommandPost:New{name = "cp3"}
cp4 = CommandPost:New{name = "cp4"}
cp5 = CommandPost:New{name = "cp5"}
cp6 = COmmandPost:New{name = "cp6"}


--This sets up the actual objective. This needs to happen after cp's are defined
conquest = ObjectiveConquest:New{teamATT = ATT, teamDEF = DEF,
textATT = "game.modes.con",
textDEF = "game.modes.con2",
multiplayerRules = true}

--This adds the CPs to the objective. This needs to happen after the objective is set up
conquest:AddCommandPost(cp1)
conquest:AddCommandPost(cp2)
conquest:AddCommandPost(cp3)
conquest:AddCommandPost(cp4)
conquest:AddCommandPost(cp5)
conquest:AddCommandPost(cp6)

conquest:Start()

Go ahead and munge and see in game either your prop shuttle or your destroyable command post shoud now work.

Section 2.4.11 Adding Our Tower And Interior Part 1
Remember in Scarif: Imperial Landing Zone the big tower with all the computers? Im going to show you how to add that now as well as create a fake reflection. First if you are adding files manually the files you will need from Scarif_Starterkit1\assets\msh are:

BRS_BLDG_Tower_Interior_1.msh
BRS_BLDG_Tower_Interior_2.msh
BRS_BLDG_Tower_Interior_3.msh
BRS_BLDG_Tower_Interior_4.msh
BRS_BLDG_Tower_Interior_FLoor.tga
BRS_BLDG_Tower_Interior_Floor_Bump.tga
BRS_BLDG_Tower_Interior_Pipes_1.tga
BRS_BLDG_Interior_Roof_1.tga
BRS_BLDG_Tower_Interior_Wall_1.tga
BRS_BLDG_Tower_Interior_Wall_1_bump.tga
BRS_Bunker_Top_1.tga
BRS_Prop_Bunker_1.msh
BRS_Prop_Bunker_1.tga
BRS_Prop_Bunker_1_bump.tga
BRS_Prop_Bunker_1_bump.tga.option
BRS_Prop_Bunker_2.msh
BRS_Prop_Bunker_Detail_2.tga
BRS_Prop_Bunker_Detail_2_bump.tga
BRS_Prop_Bunker_Door_1.tga
BRS_Prop_Bunker_Doop_bump.tga
BRS_Prop_bunker_top_1_bump.tga
BRS_Prop_Computer.tga
BRS_Prop_Computers_Bump.tga
BRS_Prop_Tower_1.msh
BRS_Prop_Tower_2.msh
MRS_Prop_Bunker_2.tga

From the Scarif_Starterkit1\assets\odf folder we will need:

BRS_BLDG_Tower_Interior_1.odf
BRS_BLDG_Tower_Interior_2.odf
BRS_BLDG_Tower_Interior_3.odf
BRS_BLDG_Tower_Interior_4.odf
BRS_Prop_Bunker_1.odf
BRS_Prop_Bunker_2.odf
BRS_Prop_Tower_1.odf
BRS_Prop_Tower_2.odf
Section 2.4.12 Adding Our Tower And Interior Part 2
So now that we have all our files go into object mode and browse for the odf: BRS_Tower_Interior_2.odf, this file contains a terrain cutter so we want to place it first. Now place it anywhere you want and notice that once placed it cuts the terrin underneath it, this is intentional. Next: enter regions mode and click new region. Create a Box and puts its size dimensions as (X: 20, Y:5, Z:5.6) this should fit almost perfectly to the smaller box on the floor. On the right hand side under change type change it to reflection and name our region reflection.

Now when we do our planning here, first make 3 new hubs (remember we want it to have an extra connection so the ai can leave the building. Make all 3 hubs outside the actual tower for now and after you have made connections to these hubs, move one of the hubs inside manually by going >edit/movehubs. We want to do this because trying to place a hub inside a roofed object is very hard. If you notice you are still having difficulties with placeing a hub inside the floor area, delete the object and place the plan first, then just place the object back over. sometimes this is the easiest solution.

After you have made you plan load the following files and place them apart from one another to prepare for snapping:

BRS_Prop_Tower_Interior_1.odf
BRS_Prop_Tower_Interior_3.odf
BRS_Prop_Tower_Interior_4.odf
BRS_Prop_Tower_1.odf

Enter MultiSelect Mode: then click on the floor first then the other objects you placed, You may notice the terrain cutter goes outside the building, I used BRS_Prop_Floor_1.odf twice here to cover the terrain in Scarif"Imperial Landing zone I recommend you do the same :). remeber in object mode to delete to water tile underneath the towers terrain otherwise you will see the water inside the tower (adjust terrain as needed to hide the missing water after); Also make sure the reflection regions bottom is aligned with the floor at the same height to mark where it begins.


Section 2.4.13 Adding Some Background Objects
Our Background objects are basically Low Resolution models intended to not make our level look so plain, there are Low resolutions trees, a citadel tower, a few pipes, and a bunker. The purpose of these objects is the be in the background! not to be used as a vital part of the level remember this!. The low rez trees should always be used on distant islands to save on poly count!.

if you are adding manually the files you will need for our background objects from Scarif_Starterkit1\assets\msh are:

BRS_Iront_Texture_Base_1.tga
BRS_Prop_Citadel_1.tga
BRS_Prop_Citadel_1_bump.tga
BRS_Prop_Citadel_2.tga
BRS_Prop_Citadel_2_bump.tga
BRS_Prop_Citadel_3.tga

from the assets\odf folder simply copy :
BRS_Prop_Citadel.odf
and BRS_Prop_Trees_low.odf (when you added the tower in the previous section the rest of the background objects odfs are included please revisit that section if you didnt already add)

now for your props there shouldnt need to be any planning or anything added just load the props files and go since these are background objects.

A Breakdown of these objects are:

BRS_Prop_Citadel.odf (A background object of the citadel tower)
BRS_Prop_Bunker_2.odf (A Background object for the railing connecting to the citadel)
BRS_Prop_Bunker_1.odf (A background object of a closed bunker that connects to the rail)
BRS_Prop_Trees_low.odf (A Low poly tree for background Islands)
Section 2.4.14 Adjusting Your Fog If Needed
You may notice after we place a citadel if we place it farther in the background the fog seems to make it entirely blue. although the fog right now might be unnappealing I would recommend not removing it but lowering its color and alpha. Remember in Reality as we are farther away from objects they fade into the distance, so lets try to replicate this.

To do this simply go into you data_BSC\worlds\BSC\world1 folder and open up the BSC.sky file.

you will see this at the top
SkyInfo()
{
Enable(1);
FogColor(85,108,142,128);
PS2()
{
FogRange(0, 0);
NearSceneRange(0.5, 85.0, 100.0);
FarSceneRange(5000.0);
SplitOptions()
{
PropClusterEnable(1);
PropClusterFadeAdj(0.6);
PropClusterDensity(0.1);
}
}
XBOX()
{
FogRange(-200.0, 1300.0);
NearSceneRange(0.5, 85.0, 100.0);
FarSceneRange(3000.0);
NearSplitScreenRange(0.2, 110.0, 160.0);
FarSplitScreenRange(0.0);
SplitOptions()
{
FogRange(5.0, 140.0);
PropClusterEnable(0);
}
}
PC()
{
NearSceneRange(30.0, 160.0, 40.0, 200.0);
FarSceneRange(5000.0, 5000.0);

FarSceneRange(5000.0);
FogRange(-100.0, 600.0);
}

}

// All we are going to do here is change around a few numbers to suit our needs. Under where it says PC() we are just going to adjust the NearSceneRange, and the FogRange to be

NearSceneRange(50.0, 220.0, 60.0, 300.0);
FarSceneRange(5000.0, 5000.0);

FarSceneRange(5000.0);
FogRange(-100.0, 1800.0);

// so your full section for this first part of the sky file should look like

SkyInfo()
{
Enable(1);
FogColor(85,108,142,128);
PS2()
{
FogRange(0, 0);
NearSceneRange(0.5, 85.0, 100.0);
FarSceneRange(5000.0);
SplitOptions()
{
PropClusterEnable(1);
PropClusterFadeAdj(0.6);
PropClusterDensity(0.1);
}
}
XBOX()
{
FogRange(-200.0, 1300.0);
NearSceneRange(0.5, 85.0, 100.0);
FarSceneRange(3000.0);
NearSplitScreenRange(0.2, 110.0, 160.0);
FarSplitScreenRange(0.0);
SplitOptions()
{
FogRange(5.0, 140.0);
PropClusterEnable(0);
}
}
PC()
{
NearSceneRange(50.0, 220.0, 60.0, 300.0);
FarSceneRange(5000.0, 5000.0);

FarSceneRange(5000.0);
FogRange(-100.0, 1800.0);
}

}

munge and check your results, you can also lower to fogs alpha (the number 128 at the top of the file) to make it less visible but I personally like where the fog is at with this.


Section 2.5 Adding Foliage
The final part included in the first chapter of our modding Starter Kit is Foliage, Foliage is basically your grass and plants that will cover your terrain. Adding this is rather simple but first: A few files we need if you havent already copied the whole asset:

From Scarif_Starterkit1\assets\msh we will need:

BRS_Grass_Bush_1.msh
BRS_Grass_Bush_1.msh.option
BRS_Grass_Bush_1.tga
BRS_Grass_Bush_2.tga
BRS_Prop_Fern_1.msh
BRS_Prop_Fern_1.msh.option
BRS_Prop_Tropical_1.msh
BRS_Prop_Tropical_1.msh.option
BRS_Tropical_Plant_Leaf_1.tga
editor_grasspatch.msh
yav_grass.tga
yav_grass.tga.option
yav_grass_tall.tga
yav_prop_bush1.tga
yav_prop_grass_tall.odf

From Scarif_Starterkit1\assets\odf we will need:
BRS_Grass_Bush_1.odf
BRS_Prop_Fern_1.odf
BRS_Prop_Tropical_1.odf
BRS_Prop_Tropical_Foliage.odf
yav_prop_grass.odf
yav_prop_grass_tall.odf
yav_prop_grass2.odf

Now for implementation:

First go to you data_BSC\worlds\BSC\world1 folder and make a new text file called "BSC.prp"

inside this file copy and paste the following text:

Layer(0)
{
SpreadFactor(0.3);
Mesh()
{
GrassPatch("yav_prop_grass_tall.odf", 60);
File("editor_grasspatch.msh", 50);
Frequency(50);
Scale(0.25);
Stiffness(0.0);
CollisionSound("foliage_collision");
}


}

Layer(1)
{
SpreadFactor(0.2);
Mesh()
{
File("BRS_Prop_Tropical_1.msh", 60);
Frequency(20);
Scale(1);
Stiffness(0.0);
CollisionSound("foliage_collision");
}

}

Layer(2)
{
SpreadFactor(0.3);
Mesh()
{
GrassPatch("yav_prop_grass.odf", 60);
File("editor_grasspatch.msh", 50);
Frequency(50);
Scale(0.25);
Stiffness(0.0);
CollisionSound("foliage_collision");
}

}

Layer(3)
{
SpreadFactor(0.3);
Mesh()
{
GrassPatch("yav_prop_grass2.odf", 600);
File("editor_grasspatch.msh", 50);
Frequency(50);
Scale(0.25);
Stiffness(0.0);
CollisionSound("foliage_collision");
}

}


// Next go into ZE and load your level. Click on the "foliage" tab and under foliage choose your foliage brush number: for our current set up 0 will paint grass, 1 will paint a tropical plant and 2 will pain other foliage with dead grass, a oval shaped leave plant, dead twigs. Paint the foliage in the amount you want then just save and munge. Easy Right? (I wrote in a layer for layer brush 3 but it was unused... dont use it... you really shouldnt need to)

You may notice after munging the grass is a little too tall, this deals with ZE not updating the odf automatically, to fix this just go to data_BSC\worlds\BSC\world1 and open up yav_prop_grass_tall.odf in a text editor. type anything you want anywhere (I usually type 1 just to be simple) then save the file. Delete whatever you just typed and save it again. Munge and the grass should now be smaller. This problem will occur on first munge, and anytime you clean and remunge after just repeat this step of typing, deleting and saving to fix it... its a simple solution.

AND with the end of Foliage this concludes the first chapter of our modding tutorials. Please keep posted and up to date as more of these starter kits are released.

12 Comments
Aoykav Mar 22, 2024 @ 4:36pm 
i am having an issue where after having completed the step where i raise the terrain to height 2 the map runs in the modtools debug version launcher but not the main games launcher. what could have caused this?
Stardust Jun 21, 2022 @ 2:50am 
Instructions unclear; Skywalker stuck in the sun.
PZ%3R-Xernas97 May 4, 2020 @ 1:29pm 
where are the fixed munged files I dont see them anywhere
Absolute Terror Jan 23, 2018 @ 7:58pm 
Did you upload this to anyone?
ZoM May 4, 2017 @ 6:39pm 
Are there any maps u can download and put into SWBF2 or no?
RamJam Apr 16, 2017 @ 2:12pm 
great stuff
D.onizaki  [author] Apr 13, 2017 @ 1:59pm 
Not a problem; your very welcome; if you find yourself needing any help with yor modding feel free to add me and ask away with any help you need
Hieliksuslik Apr 12, 2017 @ 6:18pm 
Bless you for making this guide, like seriously. I've been dying to make some maps and this is perfect! :bluelie:
A Ferret Apr 5, 2017 @ 12:35am 
thank you!
D.onizaki  [author] Apr 4, 2017 @ 12:32pm 
I can... And because you requested it I will in time, take into account im doing this side by side a map project and this will take time. For now if you find yourself needing details on certain functions or you get stuck you can feel free to add me and I'll help you in anyway I can