-
Notifications
You must be signed in to change notification settings - Fork 0
Creeps Overview
James edited this page Jul 30, 2025
·
4 revisions
- General creeps max cost will be 3.2k energy
- Starting from RCL 7 this can be used with 2.4k energy left over
- Restricting maxEnergy to only the full room capacity size is wasteful at higher RCL due to lost time for maxEnergy to max out at max general creep size
- The "body" of a new creep is built out of 7 available body part types,
-
WORK– ability to harvest energy, construct and repair structures, upgrade controllers. -
MOVE– ability to move. -
CARRY– ability to transfer energy. -
ATTACK– ability of short-range attack. -
RANGED_ATTACK– ability of ranged attack. -
HEAL– ability to heal others. -
CLAIM- ability to claim territory control. -
TOUGH– "empty" part with the sole purpose of defense.
-
- The resulting body being a sequence up to 50 parts.
- Each body part (except
MOVE) generates fatigue points when the creep moves: 1 point per body part on roads, 2 on plain land, 10 on swamp. - Each
MOVEbody part decreases fatigue points by 2 per tick. The creep cannot move when its fatigue is greater than zero. - Empty
CARRYparts don't generate fatigue. - Creep [
CARRY,WORK,MOVE] will move 1 square per tick if it does not bear energy, and 1 square per 2 ticks if loaded. - Creep [
TOUGH,ATTACK,ATTACK,MOVE,MOVE,MOVE] will move at maximum speed of 1 square per tick. - Creep [
TOUGH,ATTACK,ATTACK,MOVE,MOVE] will move 1 square per 2 ticks because of rounding up.
-
Miner - Five
workparts will empty asourcein the refresh timeframespawnCreep([WORK, WORK, WORK, WORK, WORK, MOVE], 'miner' + Game.time, creepMemory) == 0) -
Lorry -
Lorryhas twice themoveparts tocarrypartsnumberOfParts = Math.floor(energy / ((BODYPART_COST["carry"]) + BODYPART_COST["move"]*2))make sure that the lorry isn't too big (considering max size of 50 parts)numberOfParts = Math.min(numberOfParts,Math.floor(50/3));then buildLorry
let body = [];
for (let i=0;i<numberOfParts;i++) {
body.push(CARRY);
}
for (let i=0;i<numberOfParts * 2;i++) {
body.push(MOVE);
}-
WORK,CARRY,MOVE,MOVEGeneral Creep - Create a balanced creep as big as possible with the given energy, min parts group is aWORKMOVEMOVECARRY
let minFloorRequiredEnergy = (BODYPART_COST["work"] + ( 2 * BODYPART_COST["move"]) + BODYPART_COST["carry"]);
let numberofParts = Math.floor(energy / minFloorRequiredEnergy);
numberofParts = Math.min(numberofParts, Math.floor(50/4));
let body = [];
for (let i=0;i<numberofParts;i++)
{
body.push(WORK);
}
for (let i=0;i<numberofParts;i++)
{
body.push(CARRY);
}
for (let i=0;i<numberofParts;i++)
{
body.push(MOVE);
body.push(MOVE);
}
// create a creep with created body part for the given role
let creepMemory = { memory: {role: roleName, working: false}};
if (spawnCreep(body, roleName + Game.time, creepMemory) == 0)
{
return;
}