Give the Bulletlauncher defined datablocks... You have the rocketlauncher datablocks for the bulletlauncher, and if the bulletlaucher loads after the rocketlauncher loads, it'll overwrite the rocketlauncher datablocks, thus violating the rule.
[Edit] - Pretty much everything that says rocketlauncher, replace with bulletlauncher.