In this guide, we will make a moveset mod together. You can then use the knowledge gained to make your own!
Sm4shCommand (Soon to be replaced by FITX, I will update the Guide when it becomes the standard.) by @Sammi Husky is an application that lets you edit fighter ACMD files, and that's what we're using today! Download the latest nightly version
Setup
We'll be editing a few of Jigglypuff's moves to expand our knowledge of ACMD. I recommend reading each of these spoilers as some slightly different information is covered in each.
Neutral Air
We're going to change neutral air to meteor smash the opponent, simply because it's fun.
We're going to make Rest similar to melee, but with some changes.
This guide is very much a WIP. If there's something you want me to cover in this guide or if something is incorrect/missing, please let me know
Sm4shCommand (Soon to be replaced by FITX, I will update the Guide when it becomes the standard.) by @Sammi Husky is an application that lets you edit fighter ACMD files, and that's what we're using today! Download the latest nightly version
Setup
- Open Sm4shCommand, then select File>Open>Fighter (Or press CTRL+ALT+O)
- Open "animcmd\fighter\purin" in your dump and click Select Folder (Backup the files in this folder before starting, or alternatively, Select the folder with the copied files, leaving the original dump untouched.)
- In the workspace panel on the right, expand "ACMD". You should now be able to see every script for Jigglypuff, as she was the character we opened in step 2.
- Click "Tools>Parse Animations" and open "motion\fighter" in your dump, then click Select Folder. The application will take a moment to parse the animations, and it may seem to be unresponsive, but just wait a moment and some scripts (but not all) will be labelled differently, from 0xXXXXXXXX to something like AttackAirF or ThrowHi.
We'll be editing a few of Jigglypuff's moves to expand our knowledge of ACMD. I recommend reading each of these spoilers as some slightly different information is covered in each.
Neutral Air
We're going to change neutral air to meteor smash the opponent, simply because it's fun.
- Find and open the script for Neutral Air, it will be labelled as AttackAirN. (Attack Air Neutral) Then switch to the tab labelled game instead of effect.
- Now we're going to explain some terms in ACMD:
Asynchronous_Timer - This makes the game wait until the specified frame to perform an action.
Synchronous_Timer - This makes the game wait the specified number of frames since the last timer (Synchronous or Asynchronous) to perform an action - Using that information we can work this out:
Asynchronous - ON frame 6, Hitbox comes out (there are actually 2 in this example)
Synchronous - AFTER 2 frames (frame 8), a hitbox is replaced, and one is removed.
Hitbox - Pretty Self-Explanitory - We can check with KuroganeHammer, and the site says we're correct!
- So let's look into the parts of the first 2 hitboxes.
Code:Hitbox(ID=0x0, Part=0x0, Bone=0xA, Damage=9, Angle=0x60, KBG=0x78, FKB=0x0, BKB=0x28, Size=4, Z=0, Y=0, X=0, Effect=0x0, Trip=0, Hitlag=1, SDI=1, Clang=0x1, Unknown=0x1, ShieldDamage=0x0, SFXType=0x2, Ground/Air=0x2, Direct/Indirect=0x3, Unknown=0x1, Unknown=0x6)
ID - A way to identify different hitboxes, the game gives them an ID, incrementing by 1 each time (In this move we have ID 0 and 1)
Bone - Sets which bone of the model the hitbox is linked to
Damage - How much damage the hitbox deals
Angle - Which direction the hitbox will send the opponent if it connects. Upwards is 90°, Downwards is 270°, of course. But 0 is AWAY, not right. (it depends on which of your sides your opponent is on) 180 is INWARDS, hitting the opponent towards you.
KBG, FKB(WBKB), and BKB - Knockback Growth, Forced Knockback (Weight Based Knockback), and Base Knockback.
Size - How big the hitbox is.
Z, Y, and X - XYZ offsets of the hitbox
Thanks to Meshima's Document
0 Normal
1 None/Detect?
2 Slash
3 Electric Hitlag Multiplier=1.5, unable to tech?
4 Freezing
5 Flame
6 Coin
7 Reverse
8 Slip
9 Sleep
a Unused?
b Bury Doesn't count as jab lock times
c Stun
d Unused?
e Flower
f Unused?
10 Death Used for Ornes (3DS Smash Run, not sure if used for anything else)
11 Grass (Probably) Unused for any moves in Smash4.
12 Water Greninja stuff, Corrin Counter Surge
13 Darkness
14 Paralyze
15 Aura
16 Plunge
17 Down (Probably) Unused for any moves in Smash4.
18 Adhension Megaman Side-B1, Mii Gunner Side-B2
19 Stab Cosmetic Slash variant
1a Magic
1b Flinchless1 Fox Up-throw Blaster
1c Flinchless2 Fox Down-throw Blaster
1d Solar WFT Neutral-B1
1e (Focus Attack) Ryu Down-B1
1f (Disable) Mewtwo Down-B1, Final Smash
20 (Dragon Lunge) Corrin Side-B1
21 Unknown DuckHunt Can 0%
22 Unknown Probably have its effect, but unknown.
23 Unknown Probably have its effect, but unknown.
24 (Bullet Climax) Bayo Neutral-B1
Hitlag - Multiplier determining how long characters are stuck in Hitlag
SDI - Multiplier determining the effect of SDI, making it easier or harder.
ShieldDamage - How much extra shield damage the hitbox deals
Ground/Air - Determines if the hitbox only connects with fighters on the ground, in the air, or both.
Direct/Indirect - - Change the angle to 270 in hex, this website tells me to input 10E.
- Why not add some extra damage? Change Damage=11 to Damage=15
- We want it to be able to meteor early, so change BKB=0x1E to BKB=0x80. (BKB stands for "Base knockback", which is the amount of kb an attack with deliver before being influenced by percents (KBG, or knockback growth))
- To tack on some extra damage if they survive, we'll give both hitboxes the flower effect, slowly dealing damage. (the same effect as Rest) Change Effect=0x0 to Effect=0xE
And with that, Neutral Air is done! Click the X on the AttackAirN Tab (Don't close the Sm4shCommand window! Just close the tab!) Then select File>Save (Save As... is buggy in my experience, this is why we backed up the files beforehand)
We're going to make Rest similar to melee, but with some changes.
- Open the Script called SpecialLwL (SpecialLwR just tells the game to use the script called SpecialLwL, so by editing SpecialLwL we edit them both technically) then go to the game tab like last time.
- We can see on frame 2, the rest hitbox comes out, and on frame 3, the hitboxes are removed. Instead of that, we will change the first Asynchronous Timer to frame 1 to make rest a frame 1 attack.
- Next, we'll change the effect from 0xE (flower) to 0x5 (fire).
- Then we'll adjust the angle from 0x58 (88, almost directly upwards) to 0x169 (361, the sakurai angle.)
- Now we increase the damage from 20 to 28
- Now we decrease the BKB, 0x64 to 0x4E, but significantly increase the KBG (0x42 to 0x78), allowing it to kill at very early percents due to the damage buff.
- For fun, we're going to make this move cancellable on frame 20. After the "Remove_All_Hitboxes()", make a new line and type
Code:
Asynchronous_Timer(Frames=20)
Code:Allow_Interupt()
And with that, we're done! Save the file with the same method as last time
This guide is very much a WIP. If there's something you want me to cover in this guide or if something is incorrect/missing, please let me know
Last edited by Halvorsen,