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.