I wanna use the UID from the array to grab the object to move it and such
You really should avoid storing UIDs in the array. UIDs are assigned dynamically and can change if you destroy/create objects in runtime or even in the editor.
.
I assume you want to spawn different bullets for different weapons, with different properties. Is this right?
There are many ways to do this. The easiest would be to use templates: create a template for each bullet type, configure all properties directly on the bullet sprite (speed, animation, damage value etc.) Then spawn the bullet sprite by template name. You won't need any arrays or scripts.
Here is a demo