Changelog 2018-12-14

New design

We’d like to introduce the results of what our frontend team (designer Roman and developer Dmitriy) has been doing during last two months. We have revamped the entire visual style of the game, and today we’re starting to deploy it gradually to various parts of the game UI.

First of all, Screeps now has new logo!

It is much more visually clear, sends more obvious message of coding, and has “creeps” part highlighted and animated. Fun!

Some game screens have been redesigned. This is how they look in the game:

We’re going to redesign almost all other game screens as well. For example, we’re working on the main room UI as well (still work in progress):

A note for those interested in technologies behind the scene: we’re migrating from AngularJS to modern Angular on these UIs.

Now to changes in functionality.

  • Subscription Tokens market is now global and works between shards. You can buy and sell tokens from/to any shard, all orders are visible on all shards.
  • Due to this, created property in the order is now meaningless for tokens (since it is in ticks), and new createdTimestamp property has been added.
  • As it is shown on the first screenshot, the Steam login page now has option to choose one of the predefined Community servers to connect. If you want your server to be added to this list, please check this page.


Introduced new mechanic Creep.pull. It allows one creep to pull another creep helping it to follow:


creep1.pull(creep2); // first creep offers pulling
creep2.move(creep1); // second creep accepts it

creep1.move(RIGHT); // actual move

Here creep1 will gain fatigue for both creeps. creep2 may not even have any MOVE body parts. Creeps may belong to different players. Creep.pull can be called recursively by multiple creeps in series. Thus, a fully XZHO2-boosted 50xMOVE “train” can pull several 50xCARRY creeps just on its own.

PTR discussion

Controllers attack improvement

  • Controller downgrade timers are changed to these values:
    • 1 level: 20000 ticks
    • 2 level: 10000 ticks
    • 3 level: 20000 ticks
    • 4 level: 40000 ticks
    • 5 level: 80000 ticks
    • 6 level: 120000 ticks
    • 7 level: 150000 ticks
    • 8 level: 200000 ticks
  • When the controller gains or loses one level, its downgrade timer is set to 50% instead of 100%.
  • Safe mode activation unavailable period starts from this 50% point minus 5000 ticks.

Draft discussion
PTR discussion

Other changes

  • POSSIBLY BREAKING CHANGE: Disabled ability to boost a creep while it’s still being spawned (so called “preboosting”). This case is the only one when something can be done to a creep which is not spawned yet, and removed for the sake of consistency. Otherwise we’d need to consider all other actions whether they should be allowed to apply on creeps being spawned (PTR discussion).
  • Introduced new method Game.cpu.halt() (engine#104, driver#30 by laverdet).
  • Increased maxRooms limit in from 16 to 64 (driver#31 by laverdet).
  • Added support of debugging user scripts in real-time using v8 inspector in private servers (driver#26 by laverdet).
  • Containers now can be built next to exit tiles.
  • Hostile creeps don’t block building in safe moded rooms.
  • Moved Source Keeper behavior logic from runtime to processors which should improve overall game world performance. We’re working on the same refactor of Invaders as well.
  • Various fixes.

This update is supported in private server version 3.2.0.

Have comments or feedback? You can discuss this post here.