I'm creating creeps the exact same way, except that I give them names myself:  Game.spawns.Spawn1.createCreep([WORK, WORK, WORK, CARRY, MOVE], "UniqueName", {role: 'harvester'}); and it works perfectly for me. Try if you have the same issue if you give them a name yourself - if that works, this might be a bug.    If that doesn't work either: Do you have any other code that messes with Memory?  The way creep memory works is that the spawn instantly creates the memory entry in Memory.creeps, but the creep itself is only created / starts spawning on the next tick - so if you for example have a script that cleans up memory of non-existing creeps, that would have to be run before the code that spawns new creeps, not after, or exactly what you are describing happens.