@export
var player_sprite_arr: Array[Texture2D] = []
@export
var shoot_audio_arr: Array[AudioStreamWAV] = []
@export
var hurt_audio_arr: Array[AudioStreamWAV] = []
These should be moved to the ShootEmUp.gd (all the arrays of possible values). That is where they are used so should be there, and also I wouldn't think it would work this way if you're going to be instantiating a new player on the game start.
Ultimately, the player_sprite_arr will actually need to be moved to a GameData inherited script for allowing the sprite to be displayed on the title card. However, that needn't be done now, just something I wanted to mention.
Inside Player.gd
These should be moved to the ShootEmUp.gd (all the arrays of possible values). That is where they are used so should be there, and also I wouldn't think it would work this way if you're going to be instantiating a new player on the game start.
Ultimately, the player_sprite_arr will actually need to be moved to a GameData inherited script for allowing the sprite to be displayed on the title card. However, that needn't be done now, just something I wanted to mention.