Im not sure if this is possible but im assuming it is.

When you play Shooting games vibration can change the feel quite a lot from my experience.
I was wondering if it is possible to add vibration to my controller when the gun is shot.
Can this be done?

Yes it is, from your player controller use this: YourPC->PlayDynamicForceFeedback(), you can control stuff suck as intensity and duration, even what servo motor you want affect