Can't find a way to check if a memory attribute exist or not before accessing it.
- 
					
					
					
					
 I get the number of harvester in each of my room with the code : let creepsInRoom = spawn.room.find(FIND_CREEPS); .... var numberOfHarvesters = _.sum(creepsInRoom, (c) => c.memory.role == 'harvester');But each time an enemy come to one of my room and doesn't have a creep.memory.role attribute, I got a NPE. I can't find a way to check if an attribute exist in memory before trying to access it. (I'm a JS newbie) 
 
- 
					
					
					
					
 I think your problem is not that there isn't a role - undefined == 'harvester'just gives youfalse. The problem is that there isn't any memory for that creep, since it doesn't belong to you.There are two ways you can fix this: - If you only want your own creeps to be in creepsInRoom, you can changeFIND_CREEPStoFIND_MY_CREEPS.
- If you want both your creeps and hostile creeps to be in creepsInRoom, you can changec.memory.role == 'harvester'toc.my && c.memory.role == 'harvester'. (The double&&means that the second part will only be checked if the first part is also true. If the first part is false, the answer will be false.)
   
 
- If you only want your own creeps to be in 
- 
					
					
					
					
 Thanks for that clear and short answer  Have a god day Sir Yoshi
I think all will be ok with your help. Have a god day Sir Yoshi
I think all will be ok with your help.