Changelog 2016-09-05

The Market system has been deployed.

Changelog 2016-07-22

  • Added new public option to Creep.say method. You can set it to true to allow other players to see the message.
  • CPU cost of Creep.say method is set to NONE.
  • Added new Creep.saying property that can be used to read the message at the last tick, even by other players.
  • Moving onto exit tiles now doesn’t generate any fatigue regardless of creep movement capabilities.
  • It is now possible to build spawns and extensions near energy sources.

Changelog 2016-07-18

  • Changed downgrade timers for different Room Controller levels (CONTROLLER_DOWNGRADE constant):
    • RCL1: 20,000 ticks
    • RCL2: 5,000 ticks
    • RCL3: 10,000 ticks
    • RCL4: 20,000 ticks
    • RCL5: 40,000 ticks
    • RCL6: 60,000 ticks
    • RCL7: 100,000 ticks
    • RCL8: 150,000 ticks
    This affects only controllers downgraded after the patch. The current timers are not changed.
  • Fixed a bug in PathFinder module related to incorrect pathfinding near room borders in rare cases.
  • RoomPosition.lookFor(LOOK_TERRAIN) now returns an array with a single element as documented.
  • Fixed an issue in the simulation that caused ticks slow down over time. Please report if you still experience this issue.

Changelog 2016-06-17

Changelog 2016-05-30

  • Introduced StructurePortal. This non-player structure instantly teleports your creeps to a distant room acting as a room exit tile. Portals appear randomly in the central room of each sector.
  • Increased mineral deposits regeneration time from 20k to 50k ticks.

Changelog 2016-05-16

  • Introduced StructureNuker.
  • Added Nuke object prototype.
  • Added FIND_NUKES constant.
  • Added STRUCTURE_NUKER constant.
  • Added constants for Room.look* methods:

Changelog 2016-05-12

You can read more about some of the breaking changes in this announcement.

  • Breaking change: Removed property.
  • Breaking change: Removed deprecated methods:
    • Creep.transferEnergy (use Creep.transfer instead)
    • Creep.dropEnergy (use Creep.drop instead)
    • Creep.unclaimController (use StructureController.unclaim instead)
    • Game.getUsedCpu (use Game.cpu.getUsed instead)
    • Flag.roomName (use Flag.pos.roomName instead)
    • RoomPosition.findClosest (use either RoomPosition.findClosestByRange or RoomPosition.findClosestByPath instead)
  • Added new prototypes: RoomObject, OwnedStructure, StructureExtension, StructureExtractor, StructureKeeperLair, StructureLab, StructureLink, StructureObserver, StructurePowerBank, StructurePowerSpawn, StructureRampart, StructureStorage, StructureTerminal, StructureTower, StructureContainer, StructureRoad, StructureWall.
  • Structure.transferEnergy method is moved to the corresponding specific structure prototypes (if applicable).
  • All boosted creeps, including NPC invaders, now drop up to 20% (depending on their life time) of the resources spent on their boost when killed.
  • Added new method StructureSpawn.recycleCreep that allows to return up to 100% (depending on life time) of all resources spent on that creep’s spawning and boosting.
  • Energy sources in Source Keeper rooms now have 4,500 energy capacity.
  • Increased terminals capacity from 100,000 to 300,000.
  • Reduced terminal send fee from 0.2 to 0.1 energy unit per resource unit per room.
  • Room.findPath method now has the default maxOps=20000 value in case when origin and target positions are in different rooms.
  • Increased towers count available on different room levels:
    • RCL3: 1 tower
    • RCL5: 2 towers
    • RCL7: 3 towers
    • RCL8: 6 towers
  • Introduced new Creep.attackController method. This is now the way to decrease downgrade or reservation time instead of Creep.claimController. In addition, attacking a controller now prevents it from being upgraded for the next 1,000 ticks.
  • Added StructureController.upgradeBlocked property.

Changelog 2016-04-13

Gameplay changes

  • Deployed NPC Invader Raids system.
  • Increased containers decay time from 100 ticks to 500 ticks if the room is owned.
  • Decreased dismantling power from 100 hits to 50 hits returning 0.25 energy units per tick per WORK body part.

API changes

  • Important: the new PathFinder is now activated by default. Call PathFinder.use(false) in the beginning of your script to revert to the old pathfinding.
  • changes: 
    • If you return false from the roomCallback, the requested room will not be searched, and it won’t count against maxRooms.
    • heuristicWeight option is set to 1.2 by default.
  • method has been completely rewritten. There is now the routeCallback option which can be used to control rooms pathfinding costs (thanks to The_General).
  • Creep.upgradeController now can be used within range of 3 tiles.
  • Added new signature to the RoomPosition.inRangeTo method: inRangeTo(x,y,range).
  • Structure.transfer now can be used even for hostile structures, i.e. you can “steal” resources this way. The ERR_NOT_OWNER code will only be returned if you are not the owner of the target creep, or there is a hostile rampart on top of the structure.
  • Updated runtime script servers to Node.js 5.10.1.