First thing you want to do is dump your copy of Smash Bros. using this guide: http://pastebin.com/SXTRkHUt
Next. download Sm4shexplorer to extract the necessary files for modifying the game. Open Sm4shexplorer and select your dump of Smash 4. Go to /data/fighter/ and select any character. For this tutorial, I'll be doing Mario.
Right click and extract both the motion and script files.
Download Sm4shcommand (I use the night build) for editing the scripting for the characters. Go to File > Open > Fighter. Go to the extract folder located in the same location as your Sm4shFileExplorer.exe, continue further to \extract\data\fighter[fighter]\script\animcmd\body and select the folder.
When you open the "ACMD" folder in the workspace, you'll see a bunch of undecipherable code. To make this understandable, you need to go to Parse Animations. This is located in Tools > Parse Animations in the Night build. Then go to the "motions" folder and click select folder. Now a lot of the entries should be fixed.
Here's how most of the important moves are categorized, special thanks to GosuCab for helping me with this!
Most regular moves have their hitbox data stored in the game.bin tab, but I'm going to be editing a taunt, which typically doesn't have a game.bin tab. Taunts are entered as "Appeal" in the program (so AppealHi is up taunt).
I'm going to be making the up taunt slow down all other fighters in the game. I'm going to use the expression.bin tab.
We're going to have to edit AppealHiR and AppealHiL so it applies to both facing right and left.
I got the command for slowing down from this video.
"The command is unk_37ED7029 for all you smash hackers. First parameter is how many frames it takes for the opponent to complete what would normally be 1 frame (i.e. reciprocal of the speed multiplier). Second parameter is the number of frames the effect is active for."
So: unk_37ED7029(unknown=10, unknown=60) will make every other fighter move 10 times slower for 60 frames (1 second). It will automatically convert these to hex format, so it will be saved as unk_37ED7029(unknown=0xA, unknown=0x3C). Enter the command into the code in any desired location (the location will determine when it activates, so for me it will start on Frame 11)
Apply this to AppealHiL as well, close the tabs to apply the changes, and save the file. I like to save these in a separate file to keep track of the changes. Drop the changes from the saved folder to the appropriate fighter in Sm4shexplorer and build the mod. Once the mod is loaded, Up-taunt should slow all other fighters by 10 times for 600 frames.
Other useful info:
MAKE SURE TO CLOSE THE TABS AFTER EDITING TO APPLY THE CHANGES. IF YOU DON'T CLOSE THE TABS, THE CHANGES WON'T SAVE.I know this is counter-intuitive, but it's simply how it is.
Synchronous_Timer waits until a specified number of frames have passed to continue.
Asynchronous_Timer waits until a specified frame is reached.
So Synchronous_Timer(Frames=5) will wait five frames until running that segment of the code, while Asynchronous_Timer(Frames=5) will wait until frame 5 is reached to run the code.
The customs for special moves are entered as the specialmove_C2 (for the second variant) and _C3 (for the third variant)
Set_Frame_Duration(Speed=0.5) will double the speed of the frames. This can be used to make complete moves faster or the ending lag specifically. Lower numbers are faster, higher numbers are slower. 1 is the default speed.
The angle for auto-linking moves (like Mario's up-b, Fox's forward air, etc.) is 365 (among others).