#PLAYER CODE# left = keyboard_check(ord("A")); right = keyboard_check(ord("D")); jump = keyboard_check_pressed(vk_space); if facing != 0 image_xscale = facing; else image_xscale = image_xscale; facing = (right - left); hsp = facing * walk_spd; if(place_meeting(x+hsp,y,oWall)) { while(!place_meeting(x+sign(hsp),y,oWall)) { x = x + sign(hsp); } hsp = 0; } if oShotgun.hasFired { motion_add(-oShotgun.image_angle, oShotgun.backBlast); alarm[0] = 1; hasFired = false; } vsp += grv; if(place_meeting(x,y+vsp,oWall)) { hasJumped = false; while(!place_meeting(x,y+vsp,oWall)) { y = y + sign(vsp); } vsp = 0; } if jump && !hasJumped { hasJumped = true; vsp -= jump_frc; } x += hsp; y += vsp; #GUN CODE# x = oPlayer .x + 30; y = oPlayer.y; image_angle = point_direction(x,y,mouse_x,mouse_y); if mouse_check_button_pressed(mb_left) { hasFired = true; for(i = 0; i < bulletCount; i += 1) { instance_create_layer(x,y,"Bullets",oBullet); } } #EXPLANATION# Yes youre right I only want it to stop happening. So basically I wanna have a significant shotgun knockback and motion_add just seems the best way to do it. BTW tjanks for all the help :).