Factorys spawn same object different colours

Yeah, @AppsTrader, in my example I declared the property as a hash in go.property() but when I sent the property value via factory.create() I sent it as a string. It should have been like this:

factory.create("#factory", nil, nil, { image = hash("bullet2") })

IMPORTANT: With my suggested solution you should have one sprite. Not many as in your screenshot. The purpose of this line:

 msg.post("#sprite", "play_animation", { id = self.image })

Is to tell the sprite component to change which image to use from the atlas you assigned to your sprite.