Tools required - EA Graphics Editor, bigGUI, Dolffin, or any program that can import into VIV files.
AIACT VIV format note - The default AIACT.VIV file included with NBA Live will not open in bigGUI or Dolffin and you will not be able to import files into it with EAGE. You first need to export all the files with EAGE and then create a new VIV using it's Import Wizard, importing all the files you extracted from it.
Don't worry about it, I am only giving you the information beforehand, the package of files I have linked contains a default AIACT that can have files imported into it.
In the file package there are the following files -
Default AIACT.VIV file capable of having file imported into it.
CSV file of the Assignment file that can be imported into a spreadsheet or database program for easier viewing and understanding of the way the file works. Make sure the field sperator is a comma (,) and the text delimiter is a quote (") or else it won't show up properly.
Download File Package
Don't edit the CSV file directly. It's a pain trying to turn it back into EA's format. Instead, just use it as a guide and edit the assignment.ACT file with notepad.
Ready to improve on what EA has done without really knowing what your doing? Ok, let's go!!
The Assignment file is split into 4 parts. They all play an equal part in balancing the way the game plays, some are more global, and others are more specific.
QUALIFICATION
SITUATION
ACTION
JOB
Notice there is a number under each of these parts. That number denotes how many entries the game looks for in that section. If you delete an entry and forget to change the number, the CPU AI will not pass the ball except when inbounding, and will not shoot the ball except when the shot clock is expiring. Sorry, but you can't just make up your own AI and try to add it to the game, I already tried it.
Qualification is the biggest global modifier in the assignment file. It is where I started modifying in 07, and you should start here, too. I'm not sure if the numbers are directly pointing to ratings, but I do know they have alot to do with player ratings.
Warning: changing a 0 to a different number can cause the game to crash. Increasing these values actually make events less likely to happen, and decreasing them makes the events more likely to happen. Balance is key. For instance, in 07, to increase the likelihood of post players taking shots, I lowered those numbers, but if I went to low, they would always shoot when they get the ball. The same thing happened with dribble drives when I increased the number lowering the amount of dribble drives, players wouldn't drive to the rack. They would just take a few steps and shoot a pull up jumper more often.
- Code: Select all
ENTRY B C D E F G H I J K L M N O P
All players 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Perimeter players 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Post players 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Point guard 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Good 3pt shooter 31 0 0 0 0 0 0 0 75 0 0 0 0 0 0
Good inside scoring 31 0 0 0 0 0 0 0 0 65 0 0 0 0 0
Good dribble 31 70 70 70 0 0 0 0 0 0 0 0 0 0 0
Good passer 31 0 0 0 0 0 60 0 0 0 0 0 0 0 0
Good dunker 0 0 0 0 0 60 0 0 0 0 0 0 0 0 0
Good shooter 31 0 0 0 0 0 0 70 0 0 0 0 0 0 0
Not point guard 15 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Shooting guard or small forward 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Good dunk_layup 31 0 0 0 0 57 0 0 0 0 0 0 0 0 0
Not guard 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Superstar dribble 31 80 80 80 0 0 0 0 0 0 0 0 0 0 0
No players 0 100 0 0 0 100 0 0 100 0 0 0 0 0 0
Good perimeter players 28 0 0 65 0 0 0 70 0 0 0 0 0 0 0
Good post players 3 0 0 0 65 65 0 0 0 65 0 0 0 0 0
Good shooter and primacy 0 0 0 0 0 0 0 70 0 0 60 0 0 0 0
OK dribble 31 55 55 55 0 0 0 0 0 0 0 0 0 0 0
Great post player 3 0 0 0 70 70 0 0 0 70 50 0 0 0 0
Excellent post player 31 0 0 0 75 75 0 0 0 75 0 0 0 0 0
Not PG or SG 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0
3pt shooter 31 0 0 0 0 0 0 0 72 0 0 0 0 0 0
Excellent 3pt 31 0 0 0 0 0 0 0 70 0 0 0 0 0 0
Average dribble 31 60 60 60 0 0 0 0 0 0 0 0 0 0 0
Poor Ball Handler 3 45 45 50 0 0 0 0 0 0 0 0 0 0 0
Good one on one player 30 0 0 70 0 0 0 70 0 0 0 0 0 0 0
Poor Shooter 31 0 0 0 0 0 0 0 60 0 0 0 0 0 0
Good offensive player 31 0 0 0 0 0 0 60 0 0 0 0 0 0 0
Not Center 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Not Post Players 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Post style focal point 3 0 0 0 0 0 0 0 0 79 0 80 79 74 0
Perimeter style focal point 28 0 0 0 0 0 0 0 69 0 0 0 79 79 79
I started with "B" because that is how it looks in my spreadsheet in OpenOffice. Hopefully, it shows up like that for you and will avoid confusion.
ENTRY is of course, the name of the qualification.
B is the qualification identifier. It can be changed for any ENTRY, but I suggest that you don't change it.
C has to do with either the speed, quickness, or dribbling rating of a player.
D has to do with either the speed, quickness, or dribbling rating of a player.(That's right, I'm not sure about B and C.)
E has to do with dribble drives. Lowering this value in ENTRIES that have a value will cause more dribble drives.
F Only post player ENTRIES have this value. I believe it is used for jumpshots from short to mid range.
G Dunks and Layups as referred to by the "Good dunker" and "Good dunk_layup" ENTRIES. Increasing this value can cause less dunks and layups but also the issue where players stand under the basket dribbling. They also might just shoot a very close range jumpshot when it is increased too much.
H is for Passing. Decrease it to see more passes. Go too low and players will pass when they don't really need to. I usually set this to 50 for the "Good passer" ENTRY.
I has to do with jumpshots. Increase for less jumpers, decrease for more.
J has to do with 3 point shooting.
K has to do with Inside Scoring.
L has to do with Primacy. This is the one column that I think will not cause crashes if you change the 0 to a positive number. The more you raise it, the higher the primacy rating a player needs to qualify for actions that the game chooses.
M, N, O, and P are new to 08. They are only used on two of the new ENTRIES in 08, Post style focal point and Perimiter style focal point. I don't know what they do yet.
The Situation section of the Assignment.ACT file is what controls specific parts of the gameplay. There are so many numbers and columns that it can be overwheming. If you can understand what is happening in the gameplay and realize what it is called in the Situation section, then you will have an easier time editing this part. Notice the number 160 under the header "SITUATION" which means there are 160 entries. I will tell you why this number is important later on.
I will simplify it for you.
If you are familiar with my AIACT's in 07 (1.0-1.2, SUM, SUM beta), I only started editing this part after 1.2. I actually took entire entries from 06 and put them into 07 to try and get more passing when I made the SUM aiact. Mostly the "Passer/Receiver"entries, though. This section is pretty straightforward, each column(number) refers to a situation, but we really don't know what those situations are. We can guess, though, once we start to understand thebalance of the numbers. Yep, balance again is key.
The numbers work like this -
0 = not going to happen
1-7 = least likely to most likely to happen. This is where the balance comes in. All you guys who play 08 and hate when post players take a shot as soon as they are close to the basket, look towards the bottom of the situation section for "Inside Out: Post Player: Take a Shot (jump)" and look over at column R.
- Code: Select all
Inside Out: Post Player: Take a Shot (jump) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 7.....
It's a 7. Look up and down that column and notice most of the numbers are smaller. Look up until you find "Inside Out: Post Player: Take a Shot (dunk layup)". It's also a 7. Look further up the column and you'll notice a bunch of entries that are lower like "Dunk_layup: in traffic down low" and "Shot: Covered close jumper". Look at "Post: backdown", it's a 6. So, if you want that post player to backdown his man, you can try lowering the "Poor Ball Handler"(the identifier refers to "Post Players", column B, remember?) values in the QUALIFICATION section, or you can just lower those Inside Out Post Player values in this column. There are already values for dunks, layups and jumpshots, so you could put these "Inside Out" ones at 0, or 1 and see what it does in-game. It may not have an effect if it's not the right "situation" when you are in the game, because we don't know what situation the columns refer to, remember? It's all about trial and error. You can also look at the very last column to the right, because it is a new column for 08, and most of the new AI situations that were added to 08 are used in that last column. Set the last column to all zeroes and post your results.
Just a heads up, columns R, W, and X have lots of numbers up and down the situation section and changes to those columns will probably have the biggest effect on gameplay. Isn't this fun, kids?
The ACTION section is the easiest way to crash your game if you just fumble around with the numbers. I have done minimal editing to this in the past. If you remember the AIACT I made where players did crossovers and spins during fastbreaks with nobody guarding them, it was becuase I edited this section. It's pretty simple. There are only two possible options, 0 or 1.
1 means yes
0 means no
I don't mess with that section anymore.
The JOB section is my favorite section, because it is basically the reference point for the different SITUATIONS, linking and stringing them together to perform the gameplay. There are 7 columns of numbers. It's hard to explain how it works, especially because I don't know exactly, because this is like a puzzle where you are trying to fit together pieces hoping they paint a picture of what you want to see.
Remember the number 160 under the SITUATION header? Here's why it's important. Referring to the SITUATIONS, 0 = "_DEFAULT", which is the first entry of the SITUATION section, but it does not have an entry in the JOB section which we are currently looking at. It goes all the way up to 159, which is "FastBreak: Receiver uncovered: wing ahead open", the last ENTRY in the SITUATION section. Look at the third and fifth columns of numbers in the JOB section. You should notice that the third number is the reference number to that ENTRY'S line in the SITUATION section. So, if you look at "Shot: out of time" it has a "1" in it's third column. Counting "_DEFAULT" as 0, Shot:Out of time becomes 1. The next entry down is Pass: to pg, which would be 2, and you will see a 2 in the third column. Look at it's fifth column, though. It's a 41. The reason is because every "Pass" or "Passer" comes with a "Receiver" and it needs a second reference. If you were to count 41 lines down in the SITUATION section(remembering that the first line, _DEFAULT, is actually counted as 0, and not a 1), you will find "Receiver: to pg". I hopey you are starting to understand the format a little. Guess what? You can change these if you want. I don't know what effect it would have, though, and it could cause a crash if you put in a number and the game doesn't like it. As long as you stick with a "Receiver" situation for the 5th column, though, you shouldn't have any crashes. Some JOBS have a number int he 4th column, but it is always the same as the number in the 3rd column if they have it.
The first two and the last two are more or less the IN and OUT points from other situations, however, a few of them "RULE" over certain situations.
For instance, let's look at any of the JOBS that have to do with dunking or layups.
- Code: Select all
Dunk_layup: covered close layup (guard) 2 0 102 0 0 8 1
Notice in the sixth column, it is always an 8. 8 is "Pass: from ground in backcourt". If you change this number, players will not perform a dunk or layup and I have no idea why. However, if you look at "Pass: player cutting with open lane" (68 in the third column so you can find it easier) if you change it's number in the sixth column to an 8(Pass from ground in backcourt), in-game you might see some passes to cutting players as soon as the ball handler crosses the half court line. That's something I did for the Street mod JaoSming released for 07.
As you can see, this is probably the hardest part to understand. So I'll show you a bit more. Look at "29" which is "Pass: stagnant offense." Stagnant means the offense is standing around. Now look down at 65, which is "Drive advance to basket." Look at the first column, it's 29. Do you see what I am getting at? When the AI decides that the offense is "stagnant" it can refer to "Drive: advance to basket" which will tell the ball carrier to attempt to drive. Maybe if we put a "29" in front of "Play(screen): use screen(or Play(screen):wait for screen)" that it will tell the ball carrier to use a screen when the offense is "stagnant."
I don't exactly know how the second and seventh columns work, exactly. Take a look at 91, Pass: from Backdown. The seventh column has a 50 in it, which is "Receiver: to guard in backcourt". Just to let you know, backcourt doesn't always refer to players in the backcourt just players in that general direction. So, if you are going to pass after backing down, it refers to the receiver who is a guard in the backcourt, but it also refers to "Receiver: from backdown" in the fifth column, so you can see that there are two situations that it refers to.
Things to note. Don't use the number 25 anywhere, it causes the cpu to attempt to pass to itself. don't change any "1" in the sixth column, it basically tells the cpu to shoot the ball.
Also, these are not in any order of any kind. Moving one from the top to the bottom won't make it less likely to happen or anything like that.
Also, if you decide to delete anything in the situation column, all those references in the JOB section need to be changed. Let's say we deleted "Drive:Open Drive"(don't do that, lol) fromt he SITUATION section. Since it's reference number is 3 in the JOB section, everything bigger then that has to be subtracted by one in the JOB section. Meaning, anything over 3 has to be subtracted by 1. You would also have to subtract a 1 from the number under the SITUATION header to correct the amount of entries.
Last things I want to say are that EA does some strange things. For instance, they disabled "Secondary Break: Drive: Beat Defender" by misspelling it in the JOB section and just put a "0" in the first column(in 07 and didn't correct it in 08). In 07, I corrected the spelling and added the 1 and the CPU drove ALOT more, as if it didn't drive enough already, so maybe they disabled it on purpose. Also, they replaced the situation from 06 "FstBrk: Pass: www(and Receiver)" with "Pass: Off of dribble penetration" in 07, but they forgot to take out it's ENTRY in the JOB section, and disabled Pass: Off of dribble penetration by putting a 0 in it's third column(actually referring it to "_DEFAULT" for some reason). Also, HB Studios added new AI situations that EA sort of already had, and also replaced a few of EA's SITUATION ENTRIES with their own. I believe one of these replacements causes the wacky inbounds passes.
Anyways, I hope you enjoyed this tutorial. Maybe you are more motivated than I am at making 08 play a better game and will mod this baby and release some great assignment/aiact files.