Changelogs

Changelog 2017-03-09

Introduced new kind of world map zones: Respawn Areas.

  • Respawn Areas are highlighted with blue color on the world map.
  • They are isolated from the rest of the world with a wall. The wall has a timer similar to Novice Areas. Any player can place the first spawn in this area, but nobody can come here from the outside world while the timer is up.
  • The only restriction in Respawn Area is nukes usage - a nuke cannot be launched from or to a room in a Respawn Area.
  • Players with GCL 4 or higher are no longer able to start playing in Novice Areas. They have to either respawn in a regular room or in a room within a Respawn Area that will keep them safe for a while and allow to claim as many rooms as their GCL allows.

Other changes

  • When a Novice or Respawn Area is being planned in an inner sector, all free rooms in this sector will be signed by the game with the following message:

  • Added new constants SYSTEM_USERNAME, SIGN_NOVICE_AREA, SIGN_RESPAWN_AREA. You can use them to programmatically check the signs in the rooms that are important to you and reserve them if such a message detected.

These features are supported in private servers v2.5.0.

Changelog 2017-02-27

Memory segments

Introduced new memory segments feature:

  • You can have up to 10 MB of additional memory by activating asynchronous memory segments.
  • Each memory segment is a string with an ID from 0 to 99.
  • Maximum segment data length is 100 KB.
  • Segments are asynchronous, you should request them using RawMemory.setActiveSegments. The data will be available on the next tick.
  • You cannot have more than 10 segments active at the same time.
  • Active segments are available in RawMemory.segments object and are saved automatically.
  • Activating and saving segments have no added CPU cost.

Example:

RawMemory.setActiveSegments([0,3]);
// on the next tick
console.log(RawMemory.segments[0]);
console.log(RawMemory.segments[3]);
RawMemory.segments[3] = '{"foo": "bar", "counter": 15}';

You can use this feature to store data which is not needed every tick, for example pathfinding caches, or collected statistics. Offloading data structures from Memory to asynchronous segments will allow to save some CPU spent on Memory parsing.

Other changes

  • You can now create a RoomVisual object using the constructor without a roomName parameter and post visuals to all rooms simultaneously:

    new RoomVisual().circle(30,30, {fill: 'red'});
    new RoomVisual('W1N1').rect(10,10,40,40);

    This code will display both the circle and the rectangle in the room W1N1, and only the circle in any another room.

  • Changed RoomVisual.text method style options:
    • Renamed size option to font. It can be either a number or a string in one of the following forms:
      • 0.7
      • 0.7 serif
      • bold italic 1.5 Times New Roman
      • 20px sans-serif - absolute size in pixels
    • Added new stroke and strokeWidth options.
    • Added new backgroundColor and backgroundPadding options.

    Example:

    new RoomVisual().text('Text 123', 10, 10, {
       font: 'bold italic .7 serif', 
       color: 'white', 
       backgroundColor: '#88ff88', 
       backgroundPadding: .3,
       stroke: '#005500',
       strokeWidth: .15         
    });


These features are supported in private server v2.4.0.

Changelog 2017-02-06

We introduced an exciting new major feature - RoomVisual API. Now you can draw simple shapes (lines, circles, rectangles, polygons, text labels) right at the game field in any room to debug your code and/or display arbitrary info. For example, you can visualize your creep path (using the new visualizePathStyle move option), plan your future structures placement, display debugging text messages including Unicode emoji, and many more. These visuals are visible only to you, and all API calls have no added CPU cost.

API Changelog

These features are supported in private server v2.3.0.

Changelog 2016-11-14

  • CARRY parts now don’t have weight penalty when boosted. One CARRY part always generates fatigue as one body part, even if it contains more than 50 energy units.
  • Increased the following boost effects:
    • UO: from +100% to +200% harvest
    • UHO2: from +200% to +400% harvest
    • XUHO2: from +300% to +600% harvest
    • LH: from +30% to +50% repair and build
    • LH2O: from +65% to +80% repair and build
    • GH: from +30% to +50% upgradeController
    • GH2O: from +65% to +80% upgradeController

Changelog 2016-11-07

  • When there is no free space in the target terminal while sending resources, it will not be dropped on the ground. Instead, only the amount that fits into the terminal will be sent. If the terminal has 0 capacity (i.e. it is in inactive state), then it won't be able to receive any resources.

Changelog 2016-10-24

  • Invaders in Source Keeper rooms are now always spawned in groups of 2-5 creeps and may be boosted with tier-3 boosts including XGHO2.
  • The world map is now continuous on borders when doing StructureTerminal.send and trade operations. The corresponding option added to the Game.map.getRoomLinearDistance method:
    Game.map.getRoomLinearDistance('E65S55','W65S55', false) // 131
    Game.map.getRoomLinearDistance('E65S55','W65S55', true) // 11

Changelog 2016-10-13

  • Mineral regeneration mechanics are changed. Mineral regeneration amount is no longer random, but rather depends on a new property called Mineral.density:
    • DENSITY_LOW: 15K amount (10% probability)
    • DENSITY_MODERATE: 35K amount (40% probability)
    • DENSITY_HIGH: 70K amount (40% probability)
    • DENSITY_ULTRA: 100K amount (10% probability).

    It gives the same average value as before this change, but now it is predictable and creates some variety between rooms.
  • In most cases, density is not changed between regenerations. However, there is a 5% chance that it will be changed to a random new density on the next regeneration cycle. For DENSITY_LOW and DENSITY_ULTRA deposits this chance is always 100%.
  • Mineral deposits density is visually observable on the world map using the corresponding display option.
  • Flags count is now limited to 10,000 per player. 
  • When created via the API, flag names are limited to 60 characters (creating via UI is already limited, there was the lack of filtration in the API). Old flags names will be truncated to 60 characters.
  • When remainingAmount property of a market order becomes equal to 0, the order now does not get deleted, but becomes inactive instead. You can call extendOrder and reactivate it keeping the same persistent ID. You must call cancelOrder explicitly in order to remove this order from your list.

Changelog 2016-09-30

  • Game.market.getAllOrders method now supports internal indexing by resourceType. When you provide an object literal filter description, it will work significantly faster:
    Game.market.getAllOrders({resourceType: RESOURCE_UTRIUM}); // fast
    Game.market.getAllOrders({resourceType: RESOURCE_UTRIUM, 
                              type: ORDER_SELL}); // fast
    Game.market.getAllOrders(); // slow
    Game.market.getAllOrders(i => i.resourceType == RESOURCE_UTRIUM); //slow
  • Increased player code length limit from 1 MB to 2 MB.

Changelog 2016-09-26

  • Increased nukers and observers range to 10 rooms.
  • Increased nuke energy cost to 300K.
  • Changed nuke landing damage to structures:
    • 10M damage to the landing position;
    • 5M damage to all structures in 5x5 area.
  • Added new nuke landing effect:
    • If the room is in safe mode, it is cancelled immediately, and the safe mode cooldown is reset to 0.
    • The room controller is hit by triggering upgradeBlocked period, which means it is unavailable to activate safe mode again within the next 200 ticks.
  • When safe mode is active, all hostile creeps become visually transparent and passable - your creeps can move through them freely (but not vice versa).
  • Source Keeper lairs now start a new keeper spawning period immediately as the old one is injured, rather than when it is dead. If the old keeper is still alive in 300 ticks, it disappears and gets removed by the new one.
  • Reduced energy sources capacity in source keepers rooms from 4500 to 4000.
  • Introduced new StructureExtractor.cooldown property. It is triggered on each harvest action, your harvesters have to wait for 5 ticks until the next harvest call is possible (it will return ERR_TIRED result code).
  • Reduced mineral deposit regeneration amounts from 70-140K to 35-70K. Now all minerals (including hydrogen and oxygen) have the same amounts.
  • Reduced labs reaction speed from 10 units per 10 ticks to 5 units per 10 ticks.
  • New NPC market order prices:

 Resource

Sell order priceBuy order price
3.00 Cr 1.00 Cr
6.00 Cr 1.00 Cr
18.00 Cr 1.00 Cr
Energy 1.00 Cr