Yea I tried 1 to 60 as well, something is wrong with my enemymovement array. For example; This is the only way I can declare it as an array: Public enemymovement(59) As PictureBox '= {picenemy1, picenemy2, picenemy3, picenemy4, picenemy5, picenemy6, picenemy7, picenemy8, picenemy9, picenemy10, picenemy11, picenemy12, picenemy13, picenemy14, picenemy15, picenemy16, picenemy17, picenemy18, picenemy19, picenemy20, picenemy21, picenemy22, picenemy23, picenemy24, picenemy25, picenemy26, picenemy27, picenemy28, picenemy29, picenemy30, picenemy31, picenemy32, picenemy33, picenemy34, picenemy35, picenemy36, picenemy37, picenemy38, picenemy39, picenemy40, picenemy41, picenemy42, picenemy43, picenemy44, picenemy45, picenemy46, picenemy47, picenemy48, picenemy49, picenemy50, picenemy51, picenemy52, picenemy53, picenemy54, picenemy55, picenemy56, picenemy57, picenemy58, picenemy59, picenemy60} If I try to do it any other way it won't work. I've been thinking of reducing the number of enemies but so far the number of enemies isn't the problem, more or less the array itself isn't co-operating with me. >.< I've tried declaring the array in the Sub enemyhit() procedure but that didn't work either. EDIT: Problem fixed, I declared the array in the procedure with no explicit bounds and it works. =D If anyone knows any tips for structures that would be great.