boostCreep does not boost body parts but consumes mineral and energy from lab



  • I'm calling let ret = lab.boostCreep(creep); and the creep body parts don't get boosted but the mineral/energy is consumed from lab.

    Follow this area: alt text

    From this replay: https://screeps.com/a/#!/history/shard1/E18N55?t=18636179

    The creep tries to boost its HEAL parts several times (until the lab resources goes almost empty). Creep would stop trying to boost if body_part.boost would be true at next tick. Anyways you'll see how the lab resources are consumed, but the creep parts aren't boosted...

    I'll post more details, when I see this happening again + some ret value logs...


  • Dev Team



  • Goggles (04kapuk) is correct. I looked at the replay too, and what's happening is the creep is renewing every tick, and also trying the boost. The boosts actually apply... but never show up because you're renewing in the same tick. Both the boost and the renew are applied in the inter-tick time when intents are applied, and the renew removes the boosts, but the boosts still cost you.

    Yeah. Don't do that. And there's a good reason for it to be this way, if you could just renew boosted creeps, that would cheapen boosts and you would use them forever. Imagine if you could just boost a remote miner's transport and renew it forever.

    There IS something you can do to mitigate boost cost in certain circumstances, though... there is the lab.unboostCreep() command that removes the boosts and recovers 50% of the originally applied boosts... if you need to renew the creep, use that FIRST.



  • @o4kapuk : Sorry I was blind, And thanks for being my eyes 🙂

    @Smokeman : Yup, I thought I wasn't overlapping renew and boost, but I had few lines which I had forgotten 🙂

    Thx guys :))