I can do something with triggeraction and a putnpc2
NPC Code:
if (actionserverside) {
putnpc2 strtofloat(#p(0)),strtofloat(#p(1)),{
//stuff happens here 
}
}
//#CLIENTSIDE
if (weaponfired) {
triggeraction 0,0,serverside,weponname,#v(playerx+vecx(playerdir )*2+1.5),#v(playery+2+vecy(playerdir)*2);
}
There I didn't check over it so there may be spelling errors but that should do the trick.