Note: LucasForums Archive Project
The content here was reconstructed by scraping the Wayback Machine in an effort to restore some of what was lost when LF went down. The LucasForums Archive Project claims no ownership over the content or assets that were archived on archive.org.

This project is meant for research purposes only.

feat.2da editing: what will work?

Page: 1 of 1
 Sinapus
01-21-2007, 1:53 PM
#1
I've been going through the archives trying to find information on what sort of editing can be done to the feat.2da file. In general, it looks like a lot of it is hardcoded and won't work if you try to alter it, but you can create feats that a script file can look for and that might be doable.

My question is, what exactly can be done to the feat.2da file (of either game) that the game will accept and use? Can you alter the availability of a feat so that classes that normally don't get it in the game can have it?

Example: making Force Jump available to Sentinel and Consular classes, though not automatically. Or making the Targeting feats available to Combat Droids, because HK-47 needs to be even scarier with blasters. :blubeam:

From what I've gathered, for each class entry there is a (classname)_list column has three possible values:
1 (available)
3 (granted)
4 (unavailable, not listed when you select feats at level-up)

Next to that, there's a (classname)_granted list that has a numeric value:
-1: for not level-based
Any number corresponding to level, if the (classname)_list number is 1, then the feat becomes available at that class level. If it's 3, then the feat is automatically granted at that class level.

There's also a "mincharlevel" column that seems to be for the total character level, used for the feats that any class can use, and there's an "allclassescanuse" column (0 or 1) that makes a feat available to all classes nor not available to all. Not sure how that and the class-specific entries interact.

Prereqfeat1 and prereqfeat2 appear to be important. It's probably hardcoded, but I'm guessing that if I want to make one feat available to a class, I'll have to make sure any prerequisite feats are also available or it won't work.

Am I on the right track? Completely wrong? Doomed?
 Kitty Kitty
01-21-2007, 3:07 PM
#2
I've been going through the archives trying to find information on what sort of editing can be done to the feat.2da file. In general, it looks like a lot of it is hardcoded and won't work if you try to alter it, but you can create feats that a script file can look for and that might be doable.
There's a lot of info to be had, but it will take you some digging to find all of it, though yes. There are some things that are hard-coded.

My question is, what exactly can be done to the feat.2da file (of either game) that the game will accept and use?
Well, you can alter some feat behavior and you can in fact add certain feats, though it will require some scripting and there are limits to what TYPE of feats will work this way. It would be hard to list exactly what can and can not be done in this way, but in simple terms we're pretty much limited to effects we can enact through scripting. Since to make a new feat actually do much of anything in the first place, scripting will be required, learning a little about how scripting works as well as what sorts of things it can do would be a required first step for any such ambition.

Can you alter the availability of a feat so that classes that normally don't get it in the game can have it?
Yes. This is easy. Just open feat.2da and look for the columns XXX_list, XXX_granted, and XXX_recom.

These are always in groups of 3 for each class - sol = soldier, scd = scout and so forth, where list determines if the feat is available to the class, granted is what level "freebie" feats are handed out, and recom handles what happens when you press the "reccomend" button at level-up.

For the list column, a value of 0 or 1 both allow you to PICK the feat at some level (and frankly I haven't yet figured out what if any difference there is between a 0 or a 1 here), where a value of 3 means the feat is gained for free.

Obviously you then need to set the granted value to the level you want the feat given at. --Be careful here, as giving more than 10 feats at any given level can cause problems. People have reported game crashes when trying to give too many free feats at a time.

A 4 in the list columns means this class can NEVER gain the feat in question.

The last column, granted, is a guideline of what level you need to be before the game starts to suggest the given feat. It can be ignored if you wish.

Looking at what you'd already suspected, you were more or less on track, except for this part here:

Next to that, there's a (classname)_granted list that has a numeric value:
-1: for not level-based
Any number corresponding to level, if the (classname)_list number is 1, then the feat becomes available at that class level. If it's 3, then the feat is automatically granted at that class level.
As you can see above, you were slightly off here, as this column is ONLY used for "freebie" feats, and otherwise bears no control over when a feat can be taken. For requirements as to when you're allowed to select a feat, you have to look to the "mincharlevel" column you mentioned instead, which is in fact the level requirement to CHOOSE a given feat.

To continue...

Prereqfeat1 and prereqfeat2 appear to be important. It's probably hardcoded, but I'm guessing that if I want to make one feat available to a class, I'll have to make sure any prerequisite feats are also available or it won't work.
Essentially. A good way to think about this would be for example the Blaster Proficiency feat. It's a 3-level tier, but you can't take Specialization before you have Focus, and you can't have Focus before you have proficiency.

The three feats in question for this example are:
39 WEAPON_PROF_BLASTER
32 WEAPON_FOCUS_BLASTER
46 WEAPON_SPEC_BLASTER

Look at the file and you'll see that Focus requires 39, where Specialization requires both 39 and 32, meaning the only way to get all three (provided they're even available to your class, which is determined in the section we covered above), you MUST take them in a progressive order. No shortcuts. ;)

Am I on the right track? Completely wrong? Doomed?
Yeah, you had most of it right. There's a few other areas you can edit in there, such as the last few columns to give free feats to a certain NPC at a certain level, or change how related feats are grouped and so forth, but most of the time you won't want to mess with those for just basic changes to how feats are gained and so forth.

As a general rule of thumb, if you should decide to learn some scripting and attempt to create new feats, try to think of a feat or group of feats that's remotely similar to what you're attempting to do and then mimic the fields you aren't sure of. For example, if you're making a group of 3 chained feats, pick something that already behaves that way and copy the way they handle the pips and requirements and so forth.

Other than that, the best way to learn is lots of searching the forums and reading, and of course good old fashioned trial and error. The information that we know now is mostly known because someone just started making changes to files a couple at a time and seeing what happens. Keep backups, and remember that in general, about the worst thing you could do would be to crash the game and have to try again. ;)

-Kitt
 Sinapus
01-21-2007, 5:38 PM
#3
Thanks for the info! My main idea was to make the Jedi class feats available to the other two classes as a selectable feat. I think I might try something along that lines sometime soon.

Other than that, the best way to learn is lots of searching the forums and reading, and of course good old fashioned trial and error. The information that we know now is mostly known because someone just started making changes to files a couple at a time and seeing what happens. Keep backups, and remember that in general, about the worst thing you could do would be to crash the game and have to try again. ;)
-Kitt

True. I just have a habit of asking first. I'm a help desk analyst and I always tell customers its good to ask before trying something if they don't know. ;)
Page: 1 of 1