Mod:Modify weapons

INTRODUCTION

In this Tutorial I will talk about how to customize and create a weapon. For this you will need the basic knowledge of how to pack and unpack using Gibbed.Tools. You can find the Tutorial for that here [] You will need these tools to unpack datafile.big and streamedassets.big.

GETTING STARTED

First things first, you need to figure out a base weapon to work off of. In order to simplify things I decided to use my electribow as an example, in which I use the Bow and Arrow as a base weapon. Inside the datafile_big folder find the items.txt file and open it. Inside is a list of all items in the game and all of their properties.



On the left side we have the items BowandArrow and Arrow, on the right side we have electribow and electricarrow. As you can see in each of the Bows' titles they are listed as "cProjectileLauncherItem", this means that they are just an item that throws props that do damage and don't necessarily do damage by themselves.

In order to create your own item, you'll need to copy your base item (in our case both the BowandArrow and Arrow) and paste it at the top of the list. At this point you should rename your base item to your own item name ("electribow" and "electricarrow"). The name you give your item is the name that is stored in the game and the name you will need to use in order to place the item at a location.

EVERYTHING IS CASE SENSITIVE, BE SURE YOU ARE ALWAYS PAYING ATTENTION TO CAPITALS

Now scroll down your newly named electribow item until you get to the value that states "AssetFilename = "BowandArrow"". This value is where the game retrieves the items .big and .tex files which determine what it looks like and how it interacts with Chuck. You will need to change this to the name of your item, "electribow", and I will go into detail why later.

Next scroll down to "NumberOfThrowables = "..."" and this is a value you may play around with. As you may have guess this is the number that determines how many arrows you are able to shoot out of your bow. As you can see I changed mine to 999. So right now you have made another bow, but at the moment just fires normal arrows, scroll down just a bit to "PropToThrow = "arrow"". This value determines what the bow will shoot, so we will want to change this to your own arrow, "electricarrow", this is the most important value to change since without it you would basically just be recreating a new bow.

Another value you may want to play around with is "ThrowRange = "22.5"", whereas this is a fine number, making it higher will increase the range you will shoot your arrow.

CUSTOMIZING

Now with a ProjectileLauncher, its not the launcher that does the damage, its the projectile that does everything. So let's go to the newly named electricarrow section within items.txt. Like the bow, you will need to change the "AssetFilename" to "AssetFilename = "electricarrow"".

Now scroll down and take a look at "MaxProjectileDamage", this value determines how much damage the arrow does when it hits a zombie. Right underneath that is a couple "ProjectileHit" values, these are the hit reaction of the zombie and what they will do once hit.

NOW FOR THE REAL CUSTOMIZATION

Next look at the photo to the left for reference. All the "PropEffect" and "PyroEffect" values determine all the "sugar and spice" of the weapon, whether it adds damage or just plain eye candy. You may have up to 4 PyroEffects (PyroEffect0, PyroEffect1, ..., PyroEffect3). To help understand this, I'll break it down.

"PyroEffects" determine what the effect is on the item

All the "PropEffects" determines how the effect happens

Example: "PropEffectDuration0" effects the duration of "PyroEffect0", not "PyroEffect1"

YOU MUST USE ALREADY EXISTING PYROEFFECTS FROM OTHER ITEMS

so for the first PyroEffect (PyroEffect0), I took the "PyroEffect0 = "213"" and all "PropEffect" values from "Tesla Ball" since I like the lightning effect it had when you throw the ball. So all "PropEffects" with a "0" at the end affect the "PyroEffect0" attribute.

"PropEffectDuration" determines the duration of the Effect

"PropEffectLocator" determines where on the item the Effect shows up (default is usually 16)

"PropEffectsOnCondition" determines what it takes to activate the effect

Now that gives me the lightning/electrocution effect, but now I want the arrow to have a cool idle lightning effect when not in use. For this I decided I like the electrocution effect of the Electric Rake so I took that items "PyroEffect = "123"" and added it to my electricarrow as "PyroEffect1 = "123"", BUT I do not like that it happens ONLY when you hit a zombie, I want it to occur constantly so I look for an item that has a constant effect like the FlamingSword or FlamingGloves.

I then take all of their "PropEffects" and add them to the electricarrow as "PropEffectLocator1", "PropEffectLocatorIndex1", and "PropEffectsOnCondition1". This makes it so that the electric rake effect has the constant properties of say a Flaming sword so that it doesn't need to be activated like the Tesla Ball.

ITEMS' .BIG FILES

Previously I mentioned changing the "AssetFilename" of each of the items, so now we need to put the files in the right place. To do this you will need to unpack the streamedassets.big file and open the newly created streamedassets_big folder. Look inside for the BowandArrow.big and the Arrow.big files, copy them. Return to the /data folder and create a folder and name it "dynamicprops". Open "dynamicprops". Paste both BowandArrow.big and Arrow.big files inside this folder

You must rename these .big files to whatever you named your new items: "BowandArrow" - "electribow", "Arrow" - "electricarrow". And remember, this is case sensitive.

This is the location of which "AssetFilename" will look in order to get the .big and .tex files. As you can see in the photo, you should put all of your custom weapons here.

ITEM PLACEMENT

You have now created your own weapon, but you still need a way for it to be placed in the game. When testing weapons, I always use this and place it anywhere in the "royal_flush.txt" file inside datafile.big.

This placement is in the Boiler Room and if Chuck could trip, he would trip right over it.

Now placement is fine, but if you wanted to integrate it inside the game a little better you could make the electribow a "combo item" by adding this  to the end of the electribow list of attributes. You can edit the title of the ComboCardItem and the 2 weapons needed to make the combo weapon. In our case I decided to use the "BowandArrow" as Weapon_1 and the "Battery" as Weapon_2.

After finishing this you will have a fully functioning combo weapon that you can create in a Maintenance Room by combining a BowandArrow and Battery

FINALLY!!!

Now last thing to do is to Pack up datafile_big using Gibbed.Tools, Delete "datafile_big" folder and "datafile.big" file. Next rename newly created "datafile_big.big" to "datafile.big".

Boot up the game and enjoy

You have now created and placed a new weapon into the game Since the video was created I changed the idle PyroEffect to that what I explained in this tutorial.

DON'T EVEN BOTHER WITH...

Saber Bike - Motorcycle with Laser Light Swords to slice zombies

Zombie Launcher - Spear Thrower that launches zombies

Megabuster - the effect could be doable, or similar, But I can't find anything that would act as the actual Real Buster. One of the the Trash Cans in the Royal Flush Plaza might work, but I couldn't find a way to shrink the size and rotate how Chuck holds it.