I'm not saying this is perfect code, if there's improvements I can make then let me know.
mob
var
isUser = 1
density = 1
Cross(atom/theAtom)
if(istype(theAtom, /mob) && is_user(theAtom) && isUser)
return 1
Enter(atom/theAtom)
if(istype(theAtom, /mob) && is_user(theAtom) && isUser)
return 1
proc
is_user(mob/theMob)
if(theMob.isUser == 1) return 1
else return 0
mob/Enemies // Any mob types you don't want to be thought of as a user.
isUser = 0
density = 1
To test if you added it correctly make your enemy types isUser equal 1 and you should be able to walk through them. Remember to undo that and return it to 0 though =)
And then make enemies mob/Enemy.