I will do a video tutorial later, sadly no time for a few days.
However I made a working trigger, if you use "unit dies" event then put all the information about the unit into variables right away. Because if you have any "Wait" command the unit will be removed from memory before it is executed.
Unit - Any Unit dies
PositionOfOldUnit = (Position of (Triggering unit)) <Point>
OwnerOfDyingUnit = (Owner of (Triggering unit)) <Integer>
UnitTypeOfDyingUnit = (Unit type of (Triggering unit)) <Game Link - Unit>
General - Wait 2.0 Game Time seconds
Unit - Create 1 UnitTypeOfDyingUnit for player OwnerOfDyingUnit at PositionOfOldUnit using default facing (No Options)