In FE8, the FIG1 command (0x3F40) executes a scripted fight between two units. The FIG2 command (0x3F41) is the same, but with map animations only.
I’m going to refer to 0x3F42 as FIG3, which is not supported but you can add it to Event Assembler by pasting this to Language Raws\Units\Fighting.txt:
##Scripts the details of the next fight. FIG3, 0x3F42, 8, -game:FE8 -indexMode:8 ##Leave as 0 Attacker, 2, 2 ##Leave as 0 Defender, 4, 2 ##Unknown. Leave as 0 Unknown, 6, 2
FIG3 takes the same queue of SETVALs that FIG1 and FIG2 do, but instead of scripting a fight between two characters, it scripts the outcome of the next fight after it is called. This is how the tutorials walk you through the attacking process.
Now, you do have to be careful when using this, because the attacker and defender are determined by whomever initiates the next fight. Remember that video I linked? If Eirika had waited instead of attacking, she would have been killed next turn by the scripted crit since the attacker and defender roles were switched around. Tutorials can get away with it since they’re on rails.
For FE7, you can do the same using
_0xA2 (label for BLDTs). If you remove the tutorial check and attack Batta after Turn 4, he will 0% crit Lyn.