Budget Player Cadet_
Smash Hero
I figured that there's no thread for something like this yet, and it should be useful to a lot of up-and-coming PSAers. Basically, in this thread, we put solutions to things that many people often want to know while using PSA, but aren't really stated clearly and easily elsewhere. Things like directional input during a move, random crashes, T-stances and what might cause them, along with other nifty tips and tricks. Feel free to help me out here, because quite a few of these I need myself.
First off: http://www.smashboards.com/showthread.php?t=246651 Grab events.txt and parameters.txt from there; it makes PSA so much easier. SO MUCH.
[collapse=Damage/Knockback Compensation]
This one is a given that will be useful as soon as you start ****ing with damage. It's simple, but some people ignore it-for example, while I was coding Brawl- sonic, I was just upping damage without knockback, thinking "this will make sonic do ****loads of damage, but he still won't kill worth crap". The result, of course, was a sonic that killed in like three hits.
Whenever you edit the damage of a move, KBG changes innately in relation to it.
Old KBG : New damage * Old damage = KBG to make the move have the old knockback
So if I have a random move that is a good solid combo starter, and does 5 damage, and I want it to stay as a combo starter, but do 10 damage instead. I get the KBG value as 5A...
First, convert the KBG from hexadecimal to decimal.
5A=90
Then, just use the formula above...
90 : 10 * 5. So the new KBG is 45. In hex, 2D. So the new KBG is 2D. When in doubt, use the calculator.
[/collapse]
[collapse=Ftilt/Fsmash/Specials freezing when tilted/in the air]
This one is pretty simple, but another thing people fall on their faces about all the time. You'll notice that ftilt and fsmash have 3 subactions for the actual hit. This is the angle. Depending on how the attack works, it could change the animation, the effect, both, or nothing (leafbarrett's PSA hack Kari shows how this works). So you go to the one you want to edit, and you add something... as soon as you do that, the angles will usually crash. Why? Well, look at what's in main there. Goto (something). It looks for the neutral fsmash and gets the data from that. If you change the offset on the neutral fsmash/ftilt, it will look for nothing and give you a nice fat B-note. So you have to edit the offset to match the offset of the neutral if you change it. Same thing with B-moves; a lot of them have no real difference if done in the air or on the ground, so if you add something, look for the air part and make sure you don't have a goto to mess with.
[/collapse]
[collapse=My character is stuck in an animation and does nothing (t-stance)]
This is usually a T-stance. I had this bug with Metaknight, where I made his specials go into specialfall if a variable set, or not if it wasn't.
When this bug shows up, you need to know immediately that for whatever reason, your action doesn't go into another action. If an action ends, and there's nothing that tells it to change action to something else, then it will get stuck in that animation and do nothing at all until some outside factor (damage, blastzone) changes it for it. This is known as a T-stance.[/collapse]
[collapse=I don't want my character to go into specialfall after upB, but I also don't want him to be able to upB multiple times]
This is a little trickier. I've seen a few different solutions for this. There's supposedly a variable for this stuff that is used on sonic and snake, but I never got that to work. The most crude solution is to place a large if-statement in your upB/whatever other thing's starting action (115 for upB):
if not bit is set [some random number]
_Set Bit Variable [same number as above]
_Normal codes for the move
else
_change action E
end if
Then, look through the action's structure and try to find a change action which goes into action 10 (specialfall). Change that 10 to E.
Finally, go to anywhere where the char should get his upB back, and put Clear Bit Variable [same number as above] in there. Please note that the number should not be something the system needs to store. Just go for some random large Random Access.
This should work in most cases. If anyone knows a more elegant and functional solution, post it please.
[/collapse]
[collapse=How can I mess with projectile X]
Good luck.
http://www.smashboards.com/showthread.php?t=257755
http://opensa.dantarion.com/tmp/
The former is a listing of offsets for a lot of articles, as well as a way to reach those offsets. Only things like hitboxes will be openable in PSA; for floating points (used for example on projectile speed or distance), you'll need a hex editor.
The latter is a listing of all offsets that are PSA-compatible. I couldn't figure that mess out.
[/collapse]
[collapse=How do I give a character with no projectile a projectile?]
This is not easy. You are basically limited to what you can get from the item library. Let's say you want Ganon's B attack to shoot a ball of lightning. Well, ganon doesn't have any articles you can use as a projectile. Just giving him a graphic effect and a hitbox will leave you with a hitbox that won't move unless you insert a hitbox every few frames with a different X-offset. So that sucks.
What you CAN do is make him spawn an item that he can use as a projectile. For example, see this video: http://www.youtube.com/watch?v=08lMsNseKsM
Xi made ganon spawn 15 lazers, fire them, and then eat them, giving an effect like this. There are other items that can be potentially used, and other methods for sure. The other, with brawlbox, is below.
[/collapse]
Some projectile weapons (grenades, bananas, bombs... anything you pick up) are not in the character's .pac file. They are in a file called common3 which I don't know anything about, except that all items are in there.
[/collapse]
[collapse=As soon as I pick my char on the CSS, the wii freezes. WTF?]
You have exceeded the character's file size limit. Every character has certain size limits that they must go under, otherwise the game gives a memory overflow or something like that. Basically, if the file gets too big, it crashes.
Ways to avoid this:
-Don't use Add, or at least use add sparingly. The less you use add, the less your size will grow. Every time you use Add on a subaction/action, PSA moves it to the end of the file, leaving empty space in its place. Empty space which makes the file grow a lot. Try instead of using add, going to a new subroutine.
-Whenever you would remove a command, change it to nop instead. Nop does nothing, but removing it won't save space. And if you ever need to add something to that subaction/action, you can just take the nop and change it to something else instead of adding something and causing the file size to rise.
-Don't use PSA 1.3. Use 0.2.1. 1.3 is only good for DDD and PT. It gives memory inflation up the butt.
[/collapse]
Character momentum makes your char move. I don't know much about add/subtract momentum, so I'll just say what I know about the Character Momentum event. e
0E080400 is the event for Character Momentum. The first two parameters, Horizontal and Vertical velocity, are pretty straightforward. They should be set to scalar, and then the value you put in there demonstrates the velocity.
The amount of advice I can give on this case is very limited. A lot of moves don't change momentum, but their animation sends them flying (snake dash attack, for example). Adding momentum to a move that already moves very fast will effect it far more than a move that doesn't move at all.
If you want to make a move rise, the only advice I can give is the Set Aerial/Onstage State (08000100) event; if you set that to 5 and add vertical momentum to a ground attack, it should theoretically make the move rise off the ground. I haven't messed with this yet though; feel free to try it yourselves.
First off: http://www.smashboards.com/showthread.php?t=246651 Grab events.txt and parameters.txt from there; it makes PSA so much easier. SO MUCH.
[collapse=Damage/Knockback Compensation]
This one is a given that will be useful as soon as you start ****ing with damage. It's simple, but some people ignore it-for example, while I was coding Brawl- sonic, I was just upping damage without knockback, thinking "this will make sonic do ****loads of damage, but he still won't kill worth crap". The result, of course, was a sonic that killed in like three hits.
Whenever you edit the damage of a move, KBG changes innately in relation to it.
Old KBG : New damage * Old damage = KBG to make the move have the old knockback
So if I have a random move that is a good solid combo starter, and does 5 damage, and I want it to stay as a combo starter, but do 10 damage instead. I get the KBG value as 5A...
First, convert the KBG from hexadecimal to decimal.
5A=90
Then, just use the formula above...
90 : 10 * 5. So the new KBG is 45. In hex, 2D. So the new KBG is 2D. When in doubt, use the calculator.
[/collapse]
[collapse=Ftilt/Fsmash/Specials freezing when tilted/in the air]
This one is pretty simple, but another thing people fall on their faces about all the time. You'll notice that ftilt and fsmash have 3 subactions for the actual hit. This is the angle. Depending on how the attack works, it could change the animation, the effect, both, or nothing (leafbarrett's PSA hack Kari shows how this works). So you go to the one you want to edit, and you add something... as soon as you do that, the angles will usually crash. Why? Well, look at what's in main there. Goto (something). It looks for the neutral fsmash and gets the data from that. If you change the offset on the neutral fsmash/ftilt, it will look for nothing and give you a nice fat B-note. So you have to edit the offset to match the offset of the neutral if you change it. Same thing with B-moves; a lot of them have no real difference if done in the air or on the ground, so if you add something, look for the air part and make sure you don't have a goto to mess with.
[/collapse]
[collapse=My character is stuck in an animation and does nothing (t-stance)]
This is usually a T-stance. I had this bug with Metaknight, where I made his specials go into specialfall if a variable set, or not if it wasn't.
When this bug shows up, you need to know immediately that for whatever reason, your action doesn't go into another action. If an action ends, and there's nothing that tells it to change action to something else, then it will get stuck in that animation and do nothing at all until some outside factor (damage, blastzone) changes it for it. This is known as a T-stance.[/collapse]
[collapse=I don't want my character to go into specialfall after upB, but I also don't want him to be able to upB multiple times]
This is a little trickier. I've seen a few different solutions for this. There's supposedly a variable for this stuff that is used on sonic and snake, but I never got that to work. The most crude solution is to place a large if-statement in your upB/whatever other thing's starting action (115 for upB):
if not bit is set [some random number]
_Set Bit Variable [same number as above]
_Normal codes for the move
else
_change action E
end if
Then, look through the action's structure and try to find a change action which goes into action 10 (specialfall). Change that 10 to E.
Finally, go to anywhere where the char should get his upB back, and put Clear Bit Variable [same number as above] in there. Please note that the number should not be something the system needs to store. Just go for some random large Random Access.
This should work in most cases. If anyone knows a more elegant and functional solution, post it please.
[/collapse]
[collapse=How can I mess with projectile X]
Good luck.
http://www.smashboards.com/showthread.php?t=257755
http://opensa.dantarion.com/tmp/
The former is a listing of offsets for a lot of articles, as well as a way to reach those offsets. Only things like hitboxes will be openable in PSA; for floating points (used for example on projectile speed or distance), you'll need a hex editor.
The latter is a listing of all offsets that are PSA-compatible. I couldn't figure that mess out.
[/collapse]
[collapse=How do I give a character with no projectile a projectile?]
This is not easy. You are basically limited to what you can get from the item library. Let's say you want Ganon's B attack to shoot a ball of lightning. Well, ganon doesn't have any articles you can use as a projectile. Just giving him a graphic effect and a hitbox will leave you with a hitbox that won't move unless you insert a hitbox every few frames with a different X-offset. So that sucks.
What you CAN do is make him spawn an item that he can use as a projectile. For example, see this video: http://www.youtube.com/watch?v=08lMsNseKsM
Xi made ganon spawn 15 lazers, fire them, and then eat them, giving an effect like this. There are other items that can be potentially used, and other methods for sure. The other, with brawlbox, is below.
[/collapse]
[collapse=Why can't I find certain articles in the .pac?][collapse=How to make/swap graphic effects]An example of custom gfx: here (Neku by Greeneggsandham/JoeGrandma) Note the lasers and the player pin insignia. To make a custom graphic effect, you have to replace one of the external graphic effects of the character you are working on. These are found in Fit[Charactername].pac. To replace the external gfx, you swap the model of the external gfx with another model, and you also have to import the textures. Here's a guide to model swapping with brawlbox. After swapping the models and importing the textures, you load the external gfx with an External GFX event. You can attach the gfx to any bone you want, and also change its size. A list of External GFX can be found here(use control+f and search for "External Graphic Effects".)
Well, the lasers are unchanged from their source, so they're not really custom, but as for the player pin insignia, I took Marth's entry thing and drew the symbol on it in Paint.NET, and then replaced Marth's entry's texture with that.
That doesn't work most of the time, though, because it's 2D, needs to be something symmetrical down the middle, and is the color of Marth's entry.
If you have a GFX that almost looks like something you want, you can give it a custom animation and mess with the scales or move parts around. (i.e. Neku's ice pillars being Togepi's ice thing, but stretched vertically).
[/collapse]
Some projectile weapons (grenades, bananas, bombs... anything you pick up) are not in the character's .pac file. They are in a file called common3 which I don't know anything about, except that all items are in there.
[/collapse]
[collapse=As soon as I pick my char on the CSS, the wii freezes. WTF?]
You have exceeded the character's file size limit. Every character has certain size limits that they must go under, otherwise the game gives a memory overflow or something like that. Basically, if the file gets too big, it crashes.
Ways to avoid this:
-Don't use Add, or at least use add sparingly. The less you use add, the less your size will grow. Every time you use Add on a subaction/action, PSA moves it to the end of the file, leaving empty space in its place. Empty space which makes the file grow a lot. Try instead of using add, going to a new subroutine.
-Whenever you would remove a command, change it to nop instead. Nop does nothing, but removing it won't save space. And if you ever need to add something to that subaction/action, you can just take the nop and change it to something else instead of adding something and causing the file size to rise.
-Don't use PSA 1.3. Use 0.2.1. 1.3 is only good for DDD and PT. It gives memory inflation up the butt.
-If nothing helps, go remove textures from the .pac in Brawlbox. Not the best solution, but it works sometimes.xmanfit0 said:If you're using PSA 1.3, you can avoid overly inflating characters by using Save As instead of Save. This lowers the chance of your pac file becoming corrupted. However, there seems to be roughly a one in twenty chance that PSA 1.3 will add like 15 kbs and screw up your file anyways. To get around this, save to a new file every time you make a change, and then check the new file. If the new file is 5-15kbs bigger, delete it and redo the change from the old pac file. Or, you can just use 0.2.1 if you don't want to go through the trouble. As for me, I save to a new file every time anyways, in case I want to compare the files later on, or in case I want to undo a certain change.
[/collapse]
[collapse=Character momentum and movement (I'm too bad with PSA to figure this out well, someone help plox)]Eldiran said:[collapse=How to delete permanent graphic effects (thanks eld)]
First, create the graphic effect as an External Graphic Effect. You can find the number it is using the list at the bottom of this thread's OP: http://www.smashboards.com/showthread.php?t=246651
The list has vague names in all caps, and it has very slight differences from the normal Graphic Effects list, but in general, it's the same. Experiment with the External Graphic Effect until you've got your graphic created as you want it.
There are two ways to delete it: first, you can set the Boolean parameter of your External Graphic Effect to True, and that will automagically delete the graphic effect when the subaction ends.
Alternately, you can use this event:
Delete External Graphic Effect
11150300
And set the first parameter to the external graphic effect number you chose.
Then, set the 2nd parameter to 0 and the 3rd parameter to 1.
(If you are using a graphic effect from a specific character file, the first four bytes are where the character file ID goes. For example, to delete Ike's HUNKA_HOLD, parameter 0 would be 00230002.)[/collapse]
Character momentum makes your char move. I don't know much about add/subtract momentum, so I'll just say what I know about the Character Momentum event. e
0E080400 is the event for Character Momentum. The first two parameters, Horizontal and Vertical velocity, are pretty straightforward. They should be set to scalar, and then the value you put in there demonstrates the velocity.
The amount of advice I can give on this case is very limited. A lot of moves don't change momentum, but their animation sends them flying (snake dash attack, for example). Adding momentum to a move that already moves very fast will effect it far more than a move that doesn't move at all.
If you want to make a move rise, the only advice I can give is the Set Aerial/Onstage State (08000100) event; if you set that to 5 and add vertical momentum to a ground attack, it should theoretically make the move rise off the ground. I haven't messed with this yet though; feel free to try it yourselves.
[collapse=XYZ Offsets... What are these and how can you use them?]
X, Y, and Z offsets tell the game where to attach hitboxes/gfx from the character's pivot point. They allow you to transition hitboxes/gfx to whatever points you specify. Say you want an explosion to occur from an attack, but far away from your character. You would set the hitbox to whatever bone you want. Then, you would put in a value in the X/Z offset to move the hitbox more to the right of your character.
However, due to bone/animation differences, sometimes a different offset will move in another direction. Sometimes an X offset will control left/right movement, and sometimes a Z offset will, as explained by Eldiran.
[/collapse]0B actually can check for normal Offensive Collisions. However, sometimes it doesn't work for no reason... at these times, try putting the If: 0B in the GFX tab. That usually makes it work (again for no reason).
Bump
[collapse=How do I add an extra move to a character, like a 3rd hit to a character that only has 2 hits in their jab?]First open up the character's motionetc with Brawlbox. Add a New Animation. Replace that animation with whatever you'd like, and then name it whatever you'd like, for example, "Attack13". You may want to move that animation next to similar animations, for organizational purposes (i.e moving "Attack13" so that it's below "Attack12")
Afterwards, open up the character's .pac in PSA. This is the trickiest part. What you want to do now is to look at another character's pac who has the move that you're trying to add. Let's use Samus as an example. If you want to give Samus a third hit to her 2 hit Jab, you should look at Ike's pac in PSA. Note the order or subactions. Ike's AAA is ordered "Attack11", "Attack12", "Attack13". So you can infer that this will work for Samus.
Go into Samus' pac. After her "Attack12" subaction there is a NONE subaction. So rename this to "Attack13" Fill it with events. You will need to Set RA-Bit[16] and perhaps RA-Bits 17 and 22 for the 2nd jab to lead to the third.
This works with other moves as well. For example, you can give a character who has just a normal FSmash up and down versions of the FSmash. Just study the subactions of characters who have the additional move(s) you want to give another character and mimic them.[/collapse]I've got a lot more to contribute, but for now just this:
(Maybe this should go on top or something, I've seen a lot people asking this at KC:MM)
[collapse=Where can I get PSA/The updated txt files for PSA?]
Here is where PW puts the latest version of PSA. 1.3, however, will cause file corruption (inflation) if not used correctly. Please look at "As soon as I pick my char on the CSS, the wii freezes. WTF?" further down on this thread. As to where the updated txt files can be found, here [/collapse]
And some more (some of these are a bit noobish, it's up to you whether to add to the OP or not):
[collapse=There are no hitboxes in this attack subaction! Help!] Some subactions do not have hitboxes when they should, particularly the subactions of some multi hit or looping attacks.
If such a subaction has a Subroutine event, you‘ll be able to find the hitboxes. For example, Fox's AAA involves rapid kicking. Upon checking Fox’s Attack100 in PSA, there are only a few Sub Routine 0x00011FE8’s and one Sub Routine 0x00011F98 at the end.
What to do now? Whenever you see a Sub Routine, you can copy the number (not counting the 0x) into Offset bar in the Sub Routines tab (To the right of the Subactions tab) in PSA.
For example, first pop 00011FE8 (The zeroes do not matter) into the Offset bar and click Go. You’ll find out that Sub Routine 00011FE8 points out to Sub Routine 00011F98, so put 00011F98 into the Offset bar and click Go.Now you will see hitboxes.
Keep in mind that you cannot Add or Remove any event from a Subroutine from PSA. I believe that to do this would require hexing.[/collapse]
[collapse=How do I make a character's model bigger/smaller (PSA way)] If you want to make a character's model (the entire thing, not just one specific part) bigger or smaller, this way is the easiest.
Open up the character and click the Attributes tab near the top. Look at the attribute directly below "Weight". It has the Address of 0x0B4. Depending on whether you have an updated Attributes.txt or not, it might say "Model Size" or something similar there.
There should be a number there between 0.5 and 1.5. This is the character's model size. You can enter whatever number you want there. However, it is not to scale. If a character has a model size of 1 and you put 2 there, your character will be way more than twice as big (around 5x, I'd say).
So just guess and check until you get your desired size.[/collapse]
I'll keep posting little things as I think of them. If you have any questions, feel free to ask.