SOLVED
thanks for the help dop2000! i figured out what was wrong. when the sword first spawns, it starts at 0 degrees, then goes to the correct angle as soon as the spawn finishes. the swordshot would spawn before the angle change happens because the two events happened at the same time. so what i did was i put the "signal" action at the end of every "set angle to" for the sword, then a "wait for signal" before the "spawn object" so that the swordshot always spawns after the swords angle is set. in case that didnt make sense, i have a screenshot here on the code that i made that made the game work:
i think this is it
its events 39-43 in the screenshot that i was talking about above, and i put the rest of that code group in along with it.