How to make default B1 Battledroids (Tutorial)

In this forum you will find and post information regarding the modding of Star Wars Battlefront 2. DO NOT POST MOD IDEAS/REQUESTS.

Moderator: Moderators

Post Reply
DaviidHL
Private Third Class
Posts: 52
Joined: Thu Apr 05, 2018 11:48 am
Projects :: Kashyyyk Droid Invasion
Games I'm Playing :: SWBF2
xbox live or psn: DaviidHL_

How to make default B1 Battledroids (Tutorial)

Post by DaviidHL »

In this tutorial you learn to make default B1 Battledroids, including his skin and his E-5 blaster rifle.

Let's go!


Step 1:

You have to go to assets -> sides and copy Common and CIS folder.

\BF2_ModTools\assets\sides

After this, go to the folder sides in your data_$#& folder and paste it ($#& means three letters of your mod)

\BF2_ModTools\data_$#&\Sides


Step 2:

Next, go to the CIS folder, search and open "cis_inf_marine.odf" and "cis_inf_default_marine.odf".

\BF2_ModTools\data_$#&\Sides\CIS\odf

cis_inf_marine.odf It's something like that:

Code: Select all

[GameObjectClass]
ClassParent         = "cis_inf_default_marine"


[Properties]
GeometryName            = "cis_inf_bdroid"
GeometryLowRes          = "cis_inf_bdroid_low1"
SkeletonName            = "bdroid"
SkeletonLowRes          = "bdroidlz"

FirstPerson             = "CIS\cisbdrd;cis_1st_bdroid"

OverrideTexture         = "cis_inf_battledroid_green"

In "cis_inf_marine.odf", you must to change this line

OverrideTexture = "cis_inf_battledroid_green"
to
OverrideTexture = "cis_inf_battledroid"


And so it is! Now, we have to put this droid in the map and edit his blasters.

Now you can save and close this .odf

Open the other odf, "cis_inf_default_marine.odf".

It's something like that:

Code: Select all

[GameObjectClass]
ClassParent     = "cis_inf_default"

[Properties]
UnitType        = "trooper"

WEAPONSECTION = 1
WeaponName     = "cis_weap_inf_rifle"
WeaponAmmo     = 4

WEAPONSECTION = 2
WeaponName     = "cis_weap_inf_rocket_launcher"
WeaponAmmo     = 4

WEAPONSECTION = 3
WeaponName     = "cis_weap_inf_thermaldetonator"
WeaponAmmo     = 2
WeaponChannel  = 1

WEAPONSECTION = 4
WeaponName     = "cis_weap_award_rifle"
WeaponAmmo     = 4

VOUnitType      = 082
(Ignore VOSound)

This is an E-5 Blaster rifle, default blaster in B1 droids.

Code: Select all

WEAPONSECTION = 1
WeaponName     = "cis_weap_inf_rifle"
WeaponAmmo     = 4
This is a Rocket Launcher, I recommend delete all this part.

Code: Select all

WEAPONSECTION = 2
WeaponName     = "cis_weap_inf_rocket_launcher"
WeaponAmmo     = 4
This are thermal detonators.

Code: Select all

WEAPONSECTION = 3
WeaponName     = "cis_weap_inf_thermaldetonator"
WeaponAmmo     = 2
WeaponChannel  = 1
And finally, this is the award rifle.

Code: Select all

WEAPONSECTION = 4
WeaponName     = "cis_weap_award_rifle"
WeaponAmmo     = 4
If you want delete rocket launcher, delete it.
Now, you have to make agreement to numbers of WEAPONSECTION, like this:

Code: Select all

[GameObjectClass]
ClassParent     = "cis_inf_default"

[Properties]
UnitType        = "trooper"

WEAPONSECTION = 1
WeaponName     = "cis_weap_inf_rifle"
WeaponAmmo     = 4

WEAPONSECTION = 2
WeaponName     = "cis_weap_inf_thermaldetonator"
WeaponAmmo     = 2
WeaponChannel  = 1

WEAPONSECTION = 3
WeaponName     = "cis_weap_award_rifle"
WeaponAmmo     = 4

VOUnitType      = 082
(Ignore VOSound)
(If you want, copy that in your .odf. But remember delete this "(Ignore VOSound)")

Now, we make it! Just remain put this droid in the .lua.

Step 3:

Open your c_con.lua in...

\BF2_ModTools\data_$#&\Common\scripts\$#&

and go to this part:

Code: Select all

function ScriptInit()
    
    ReadDataFile("ingame.lvl")
    
   
    SetMaxFlyHeight(30)
    SetMaxPlayerFlyHeight (30)
    
    SetMemoryPoolSize ("ClothData",20)
    SetMemoryPoolSize ("Combo",50)              -- should be ~ 2x number of jedi classes
    SetMemoryPoolSize ("Combo::State",650)      -- should be ~12x #Combo
    SetMemoryPoolSize ("Combo::Transition",650) -- should be a bit bigger than #Combo::State
    SetMemoryPoolSize ("Combo::Condition",650)  -- should be a bit bigger than #Combo::State
    SetMemoryPoolSize ("Combo::Attack",550)     -- should be ~8-12x #Combo
    SetMemoryPoolSize ("Combo::DamageSample",6000)  -- should be ~8-12x #Combo::Attack
    SetMemoryPoolSize ("Combo::Deflect",100)     -- should be ~1x #combo  
    
    ReadDataFile("sound\\yav.lvl;yav1cw")
    ReadDataFile("SIDE\\rep.lvl",
                             "rep_inf_ep3_rifleman",
                             "rep_inf_ep3_rocketeer",
                             "rep_inf_ep3_engineer",
                             "rep_inf_ep3_sniper",
                             "rep_inf_ep3_officer",
                             "rep_inf_ep3_jettrooper",
                             "rep_hover_fightertank",
                             "rep_hero_anakin",
                             "rep_hover_barcspeeder")
    ReadDataFile("SIDE\\cis.lvl",
                             "cis_inf_rifleman",
                             "cis_inf_rocketeer",
                             "cis_inf_engineer",
                             "cis_inf_sniper",
                             "cis_inf_officer",
                             "cis_inf_droideka",
                             "cis_hero_darthmaul",
                             "cis_hover_aat")
Okay, in ReadDataFile("SIDE\\cis.lvl", you have to write dc: before SIDE, like this:

Code: Select all

ReadDataFile("dc:SIDE\\cis.lvl",
                             "cis_inf_rifleman",
                             "cis_inf_rocketeer",
                             "cis_inf_engineer",
                             "cis_inf_sniper",
                             "cis_inf_officer",
                             "cis_inf_droideka",
                             "cis_hero_darthmaul",
                             "cis_hover_aat")
Now, put a comma after "cis_hover_aat" and create a line below with the bracket.
You must to put "cis_inf_marine" below "cis_hover_aat", like this:



Code: Select all

ReadDataFile("dc:SIDE\\cis.lvl",
                             "cis_inf_rifleman",
                             "cis_inf_rocketeer",
                             "cis_inf_engineer",
                             "cis_inf_sniper",
                             "cis_inf_officer",
                             "cis_inf_droideka",
                             "cis_hero_darthmaul",
                             "cis_hover_aat",
                             "cis_inf_marine")
After this, scroll down and find

Code: Select all

	SetupTeams{
		rep = {
			team = REP,
			units = 20,
			reinforcements = 150,
			soldier  = { "rep_inf_ep3_rifleman",9, 25},
			assault  = { "rep_inf_ep3_rocketeer",1, 4},
			engineer = { "rep_inf_ep3_engineer",1, 4},
			sniper   = { "rep_inf_ep3_sniper",1, 4},
			officer = {"rep_inf_ep3_officer",1, 4},
			special = { "rep_inf_ep3_jettrooper",1, 4},
	        
		},
		cis = {
			team = CIS,
			units = 20,
			reinforcements = 150,
			soldier  = { "cis_inf_rifleman",9, 25},
			assault  = { "cis_inf_rocketeer",1, 4},
			engineer = { "cis_inf_engineer",1, 4},
			sniper   = { "cis_inf_sniper",1, 4},
			officer = {"cis_inf_officer",1, 4},
			special = { "cis_inf_droideka",1, 4},
		}
	}
*IMPORTANT* If you want the both class, scroll down, you will se an advertisement

You have to change "cis_inf_rifleman" (Super Battle droid) to "cis_inf_marine" (B1), like this:

Code: Select all

cis = {
			team = CIS,
			units = 20,
			reinforcements = 150,
			soldier  = { "cis_inf_marine",9, 25},
			assault  = { "cis_inf_rocketeer",1, 4},
			engineer = { "cis_inf_engineer",1, 4},
			sniper   = { "cis_inf_sniper",1, 4},
			officer = {"cis_inf_officer",1, 4},
			special = { "cis_inf_droideka",1, 4},
		}
	}
Up the SetHeroClass, you have to copy this:

Code: Select all

AddUnitClass(CIS, "cis_inf_marine",60,60)
It would see like this:
function ScriptInit()

ReadDataFile("ingame.lvl")


SetMaxFlyHeight(30)
SetMaxPlayerFlyHeight (30)

SetMemoryPoolSize ("ClothData",20)
SetMemoryPoolSize ("Combo",50) -- should be ~ 2x number of jedi classes
SetMemoryPoolSize ("Combo::State",650) -- should be ~12x #Combo
SetMemoryPoolSize ("Combo::Transition",650) -- should be a bit bigger than #Combo::State
SetMemoryPoolSize ("Combo::Condition",650) -- should be a bit bigger than #Combo::State
SetMemoryPoolSize ("Combo::Attack",550) -- should be ~8-12x #Combo
SetMemoryPoolSize ("Combo::DamageSample",6000) -- should be ~8-12x #Combo::Attack
SetMemoryPoolSize ("Combo::Deflect",100) -- should be ~1x #combo

ReadDataFile("sound\\yav.lvl;yav1cw")
ReadDataFile("SIDE\\rep.lvl",
"rep_inf_ep3_rifleman",
"rep_inf_ep3_rocketeer",
"rep_inf_ep3_engineer",
"rep_inf_ep3_sniper",
"rep_inf_ep3_officer",
"rep_inf_ep3_jettrooper",
"rep_hover_fightertank",
"rep_hero_anakin",
"rep_hover_barcspeeder")
ReadDataFile("SIDE\\cis.lvl",
"cis_inf_rifleman",
"cis_inf_rocketeer",
"cis_inf_engineer",
"cis_inf_sniper",
"cis_inf_officer",
"cis_inf_droideka",
"cis_hero_darthmaul",
"cis_hover_aat",
"cis_inf_marine")


ReadDataFile("SIDE\\tur.lvl",
"tur_bldg_laser",
"tur_bldg_tower")

SetupTeams{
rep = {
team = REP,
units = 20,
reinforcements = 150,
soldier = { "rep_inf_ep3_rifleman",9, 25},
assault = { "rep_inf_ep3_rocketeer",1, 4},
engineer = { "rep_inf_ep3_engineer",1, 4},
sniper = { "rep_inf_ep3_sniper",1, 4},
officer = {"rep_inf_ep3_officer",1, 4},
special = { "rep_inf_ep3_jettrooper",1, 4},

},
cis = {
team = CIS,
units = 20,
reinforcements = 150,
soldier = { "cis_inf_marine",9, 25},
assault = { "cis_inf_rocketeer",1, 4},
engineer = { "cis_inf_engineer",1, 4},
sniper = { "cis_inf_sniper",1, 4},
officer = {"cis_inf_officer",1, 4},
special = { "cis_inf_droideka",1, 4},
}
}

AddUnitClass(CIS, "cis_inf_marine",60,60)
SetHeroClass(CIS, "cis_hero_darthmaul")
SetHeroClass(REP, "rep_hero_anakin")
And you already finished, munge the common part and CIS side.

If you wanna have both classes, look here!

You have to change rifleman to marine, but no delete it.

Code: Select all

		cis = {
			team = CIS,
			units = 20,
			reinforcements = 150,
			soldier  = { "cis_inf_marine",9, 25},
			assault  = { "cis_inf_rocketeer",1, 4},
			engineer = { "cis_inf_engineer",1, 4},
			sniper   = { "cis_inf_sniper",1, 4},
			officer = {"cis_inf_officer",1, 4},
			special = { "cis_inf_droideka",1, 4},
		}
Now, add an extra class:

Code: Select all

		cis = {
			team = CIS,
			units = 20,
			reinforcements = 150,
			soldier  = { "cis_inf_marine",9, 25},
			assault  = { "cis_inf_rocketeer",1, 4},
			engineer = { "cis_inf_engineer",1, 4},
			sniper   = { "cis_inf_sniper",1, 4},
			officer = {"cis_inf_officer",1, 4},
			special = { "cis_inf_droideka",1, 4},
			extra1  = { "cis_inf_rifleman",1, 4},
		}
	}
     
    SetHeroClass(CIS, "cis_hero_darthmaul")
    SetHeroClass(REP, "rep_hero_anakin")
Up the SetHeroClass, you have to copy this:

Code: Select all

AddUnitClass(CIS, "cis_inf_marine",60,60)
AddUnitClass(CIS, "cis_inf_rifleman",60,60)

like this:

Code: Select all

		cis = {
			team = CIS,
			units = 20,
			reinforcements = 150,
			soldier  = { "cis_inf_marine",9, 25},
			assault  = { "cis_inf_rocketeer",1, 4},
			engineer = { "cis_inf_engineer",1, 4},
			sniper   = { "cis_inf_sniper",1, 4},
			officer = {"cis_inf_officer",1, 4},
			special = { "cis_inf_droideka",1, 4},
			extra1  = { "cis_inf_rifleman",1, 4},
		}
	}
    
    AddUnitClass(CIS, "cis_inf_marine",60,60)
    AddUnitClass(CIS, "cis_inf_rifleman",60,60)
    SetHeroClass(CIS, "cis_hero_darthmaul")
    SetHeroClass(REP, "rep_hero_anakin")
And I finish this tutorial!
I hope you like it and understand it, because my english isn't good xD
If you got a question no doubt to answer this post!
Post Reply