It has no conspec... so it has no way of telling friends from foes.
You have traces of a conspec, but you've outcommented all the lines.
It looks like it would work though.
This is your birth gene where the initial conspec is set up. You store the value 100 in mem location 50, and set memloc to point at location 50.
'(Memloc)
'cond
' *.robage 0 =
'start
' 50 .memloc store
' 100 50 store
'stop
This means that memval will contain the value stored in the oponents mem loc 50, and comparing that value to what you have will reveal if it's a friend with the same key value (100) in the right location (50).
'*.memval *50 =
As for making them more effective it realy depends on the goal. Since it's evo bots I'd say effective would be a strong conspec and a natural way of balancing the eco system (Focusing mostly on sim settings I'd sugest).
The problem is that a conspec that completely ignores anyone with the right key will make it very atractive to be a canibal, since noone ever defends themselves. In evo sims you'll often see bots back away from their own while shooting, this way if the "friendly" bot persues you it gets killed. Other than that balancing the different species would be more stable than restricting bot behavior in the code.
It's realy the same problem, code breaks more often than it evolves, and breaking restricting code is a benefitial evolutionary step. Atleast when the conspec breaks the bot tends to eat it's own young, so they also need to evolve into escaping when born, but a purely restrictive behavior will be very fragile against evolution and tends to break very fast.