HOW TO ADD NEW HAND WEAPONS INTO BATTLEFIELD: 1942

Updated October 10th 2003

This tutorial will walk you through the necessary steps to add a new weapon into Battlefield: 1942 (BF: 1942).  You will learn how to setup a new weapon, configure the animations, add a new weapon model and place it in-game.  The tutorial will show how to add a new M16 into the game based on the existing Sg44 machine gun which is already in BF: 1942.

 

PREPARATION:

 

This tutorial assumes that you already have a new 3d weapon model to introduce into the game and that your install directory is “\Program Files\EA Games\Battlefield1942\”.  You will need to use “RFAExtractor.exe” to extract the following files from “\Mods\bf1942\archives\”: “objects.rfa”, “animations.rfa”, “standardMesh.rfa” and “Texture.rfa.”  Extract these files into the base install directory for ease of use.  All file editing should be done with a text editor (Notepad, Wordpad, etc.)

 

STEP 1:  “Objects.con” Scripting Changes

 

Start in the “objects\HandWeapons” directory. 

 

·        Copy the “Sg44” directory.

·        Rename the new directory “M16” and enter it. 

 

There will be three files (“geometries.con”, “objects.con” and “weapons.con”) and two subdirectories (“AI” and “Sounds”) within the “M16” directory.    The “objects.con” file is the most important file for a weapon.  The file houses every setting for a weapon, from the rate of fire to how much deviation that projectile will have once fired. 

 

·        Open the “objects.con” file. 

 

The first line in this file is “ObjectTemplate.create HandFireArms Sg44”.  This is the most important line in the creation of a weapon.  The name of the weapon set is a reference for everything associated with it.  The new weapon name must be EXACTLY the same throughout all of your changes throughout this tutorial.

 

·        Change every instance of “Sg44” that you find in this file to “M16” with the exception of line 59, “ObjectTemplate.addTemplate e_MuzzSG44”. 

 

 

Leave this line alone because it has nothing to do with the actual configuration of the weapon, but instead tells the game to show a muzzle-flash called “e_MuzzSG44” (an effect) every time the gun is fired.  Also, note line 2.  The “itemIndex” setting is the way that BF: 1942 segregates its weapons.  By default, knives are set as “1”, pistols are set as “2”, and machine guns and rifles are set as “3”.  You can set your weapon to whatever “itemIndex” you want, but each soldier can carry only one weapon from each “itemIndex” at a time.  This means that a soldier can only carry one weapon set to “itemIndex 3” at a time. 

 

·        Close and save this file.

 

STEP 2: “Geometries.con” Scripting Changes

 

            The “geometries.con” file tells the game engine where to find your new 3d weapon model and how it will look from a distance.

 

·        Open the “geometries.con” file. 

·        In each line that begins with “GeometryTemplate.create”, change the “Sg44” to “M16”. 

 

Once this has been completed, lines that have items like “Sg44Trigger” should appear as “M16Trigger” and so on. 

 

The next step is to modify the lines that start with “GeometryTemplate.file”.  These lines tell the game engine where the model file is located.  We will assume that you put them in the “standardMesh” directory with the rest of the BF:1942 files and that you have three model files: “M16” (main model of gun), “M16_mag” (gun magazine), and “M16Simple” (low-polygon model of the M16). 

 

·        On line 2, replace “sg44” with “M16”.

·        On line 12, replace “sg44_mag_m1” with “M16_mag”.

·        On line 27 replace “shad_sg44_m1” with “M16Simple”.

 

Notice that we are leaving line 21, “sg44trigger”, alone.  This is because we will continue to use the “sg44trigger” model. 

 

 

·        Close and save this file.

 

STEP 3: Finishing up Scripting in the “M16” Directory

 

            When adding a new weapon, always setup the artificial intelligence so that the computer will know how to use your new weapon.  This will allow your weapon to be used in Co-op games.  All artificial intelligence for weapons is contained in the “AI” subdirectory of each weapon’s main folder.

 

·        Enter the “AI” directory.

·        Open the “Weapons.con” file.

 

 

·        In line 2, change the “SG44AI” to “M16AI”.

 

 

·        Close and save this file.

 

**NOTE: Remember when you made those initial changes in the objects.con file?  You changed line 12 in objects.con to “M16AI”.  That particular line calls the artificial intelligence settings in the file you just edited.

 

·        Leave this directory.

 

            The next step is to make sure that your new weapon has sound effects.  All sound effect settings are contained in the “Sounds” subdirectory of each weapon’s main folder.  BF: 1942 has three different settings for sound.  You can choose 11 khz (Low), 22 khz (Medium) or 44 khz (High).  There are 4 files in the “Sounds” directory; Low.ssc, Medium.ssc, High.ssc and sg44.ssc.  The sg44.ssc file is a text file and is the central sound file that includes all the settings from other three sound files for the Sg44 weapon.  We will base the new weapon’s sound effects on the existing “Sg44” sound effects for now.

 

·        Enter the “Sounds” directory.

·        Change the name of the “sg44.ssc” file to “m16.ssc”.

 

 

·        Go back to the “Battlefield 1942” directory (base install directory).

 

You have now finished setting up all the necessary scripting for the game engine to see the new weapon that you have added.

 

STEP 4: Animations Scripting

 

            The animations directory contains the scripting files, the animation files and the skeleton file which the game engine uses to animate every object in BF: 1942.

 

            The “SG44.ske” file will define how the skeletal structure of the animations will work in-game (how the arms holding the gun will move while running, reloading, firing, etc.).

 

·        Enter the “animations” directory.

·        Copy the “SG44.ske” file

 

 

·        Rename the new file to “M16.ske”.

 

 

The BF: 1942 engine has built-in support for adding new weapons.  This support allows you to put your additions and changes into new files instead of modifying and potentially ruining the existing game files.  Instead of requiring you to edit the original files, the BF: 1942 engine allows you to make the following new files as additions: (“singleShotWeaponsmod.inc”, “multiShotWeaponsmod.inc”, and “AnimationStatesmod.con”). 

 

**NOTE: The game engine will only recognize these three new filenames.

 

Because this weapon we are adding is a machine gun, we will use the “multiShotWeaponsmod.inc” file and not the “singleShotWeaponsmod.inc” file.

 

·        Create a new text file called “multiShotWeaponsmod.inc”.

·        Open “multiShotWeaponsmod.inc”.

·        Add the following line: “AnimationStateMachine.copyState2 M16 v_arg1”.

 

 

·        Close and save this file.

 

This line tells the BF: 1942 engine that a weapon named “M16” has animations.

 

The next step will take a few minutes because you need to gather lines of text that tweak the animations and how the camera will shake for this weapon.

 

·        Create a text file named “AnimationStatesMod.con”.

·        Open this file.

·        Copy every line that has “Sg44” in it from the following files:  “1pAnimationsTweaking.con”, “3pAnimationsTweaking.con”, “MiscAnimationsTweaking.con”.

 

The lines that you are copying are speed adjustments to the default speed of the animations that the M16 will use.  For example, by changing these values you change the speed at which the reload animation will occur.

 

·        Paste the copied lines into the “AnimationStatesMod.con” file you just created.

 

 

·        Open the “AnimationStatesCameraShakes.con” and search for “Sg44”. 

 

 

This particular file contains settings which define how the camera will shake when particular weapon is fired.  There will be two lines with “Sg44” in them, but you need the 5 lines under each of those instances (for a total of 12 lines in this file). 

 

·        Copy the 12 lines of text into the new file “AnimationStatesMod.con”.

·        Replace every “Sg44” with “M16” in the “AnimationStatusMod.con” file. 

 

 

**NOTE: This can be done easily with a text editor’s find/replace function.

 

·        Close the “AnimationStatesMod.con” file.

 

STEP 5: Animation Files

 

Having finished the animation scripting, the next item to complete is the setup of the animation files that the game will use to bring the new weapon to life.  This task entails copying directories and renaming files.  The animation files are split up into different directories.  Each directory name denotes the type of animations that are held inside. 

 

**NOTE: In this tutorial we will work with the existing “SG44” animations.  You are able to make new animations for your weapon using the Mod Development Animation Tool. 

There are five main directories that you will need to work on: “Crouch”, “Lie”, “StandWalkRun”, “WeaponHandling”, and “Weapons”.  

 

Four of these directories (all except the “Weapons” directory) have a subdirectory named “3P” (only the “StandWalkRun” and “WeaponHandling” directories have both the “1P” and “3P” subdirectories).    Follow these steps for each main directory:

 

·        Find the “Sg44” directory.

 

 

·        Copy the “Sg44” directory.

 

 

·        Rename the new file to “M16”and enter the new directory.

 

 

·        Replace the “Sg44” in each filename with “M16” (ex. “3PCrouchBreathUpperSg44.baf” would be changed to “3PCrouchBreathUpperM16.baf”).

 

 

Follow the steps above for each of the main directories (“Crouch”, “Lie”, etc).  Once these steps have been completed, you have created all the files necessary to animate your new weapon.

 

·        Go back to the “Battlefield 1942” directory (base install directory).

 

 

STEP 6: Adding the New Weapon to a Kit

 

The weapons in BF: 1942 are added into the game via kits.  Each kit defines the weapons with which a particular class of soldier will start the game.

 

·        Enter the “objects\Items” directory.

 

 

You will see a list of directories.  These directory names are made up of the country they represent and the word “kit”.  Pick the country (directory) to which the new weapon will be added.  We will use “USKit” for this example. 

 

·        Enter the “USKit”  directory.

 

There is another set of directories named for each class of soldier.  We will add the new M16 to the Assault class.

 

·        Enter the “Assault” directory.

·        Open the “objects.con” file.

·        Find the line that has “Bar1918” in it (the main machine gun for the US Assault class). 

 

 

·        Replace “Bar1918” with “M16”.

 

 

·        Save and close the file.

 

You have now added a new weapon into BF: 1942.  Once you put the “objects”, “animations” and “standardMesh” directories back into .rfa format, you can start BF: 1942 and test out the new weapon.