relative label can give different results, depending on where used. When an object is created
relatively to another object, it means the
y coordinates you are giving as parameters will be summed to the object calling the Create Instance function. You can achieve this in different ways.
Fix your function
Since you want the bullet being created at player's position, you should call the Create Instance from within the player object. If you are calling the function from another object, you will get wrong results.
Delegate the function
You can also put the Create Instance function anywhere you want, as long as the Applies to field is referring the player object:
To do so, from the Applies to field select "Object", then choose your player object from the list, and you're done.
Use absolute coordinates
Maybe not the best solution, but it will work as well. Instead of creating the bullet
relatively, create it at an absolute position (uncheck the
relative field) and set such position as the player's: use
oPlayer.y as x and y coordinates (change the
oPlayer object name according to your project).
That's it. Let me know if something isn't working, I'll try to help you. Also, if you could provide some info such as a screenshot of the functions inside your object, we may take a deeper look to solve your issue.