How to swap between several objects? I have a complex question, so bear with me. I have 3 primaries, 3 secondaries, and 3 melees. I want a system where you can swap between primary, secondary, and melee when each of which can have a different weapon. I have a very simple .blend to get you started; all it is is basically a camera, and 3 types of primary, secondary, and melee; they all have animations and have different colors to help you. Here is a list of things I want with this system:


"Weapon Active" property; each weapon will have its own ("Smg1Active," "Smg2 Active," ...), and this will be used in such a way, for example, when a certain weapon is active, this property will be set to 1, and will allow me to make the character move faster and slower based on which item is active.
Live weapon swap: If you are selecting the primary, and suddenly the primary is smg2 instead of smg1, I want the start animation for smg2 to occur; smg2 to be active, and smg1 to be gone.
Invisibility: This is fairly simple, but when an item is not active I want it to be invisible, as I do not want other cameras to see guns floating.
Properties: I want the following properties: "Primary" (Set to 1 when primary is active); "Secondary" (Same but for secondary); "Melee" (Same but for melee); "PrimaryID" (Each weapon has its own id, as in smg1's id is 1, smg2's id is 2, and so forth); "SecondaryID" (Same but for secondary); "MeleeID" (Same but for melee).
Everything clean: Try to keep everything nice, and not scattered everywhere.


I know that is fairly hard, but I tried so many things but always failed. Try to explain your work very neatly. I want to always be able to go back, and edit it with ease. Thank you for your time!
That's quite easy to do. You don't even need to use Python, you can do this with logic bricks, properties and messages. 

I've got an example .blend here: http://www.pasteall.org/blend/33896

Press P to start.
Change weapons with 1, 2 or 3 keyboard keys. Notice how the wepon is lowered, then changes, and then plays a setup animation. Right now all the weapons play the same animation, but you could make several different ones if you like and link those up.

I've done in a slightly different way than you requested. Instead of adding/removing weapon objects, I've used Replace Mesh to change the weapon, and a active weapon int property. I've found this to work better, and you don't need to worry about having the new weapon follow the character around this way.
You can check for this int and change behaviours for the different weapons (to add different bullets or whatever).

I don't quite understand you requests about a 'Primary' property, but you can add that yourself, no problem.

For actual shooting, just add a Shoot action with some weapon movement and an empty in front of the weapon to emit bullets. These things can be set up to listen to the active weapon and change their behavior. 

Hope this works out for you. These things are not really that hard once you get a hang of Properties and Messages. Cheers.