Page 1

Zero-K: Zero-K v1.4.12.15

Aquanim continues to balance sea and the codebase has received many background cleanups and small fixes. The new UI is now the default and in terms of land balance Dominatrix may be OP.

Default UI Enforcement Opt-Out

The UI rework has reached the point where it is enabled by default. To switch to it select “New UI Minimap Right” in “Settings/HUD Presets”. It is incomplete but it does as least as much as the previous default. It looks like this:

As always, the default only applies to clean installs. However, this policy has ended up painting us into a corner. The UI used by most players tends to be a snapshot of whatever the default UI was when they first installed ZK. At worst this UI is broken and at best it is not something I want to fully support. The situation I imagine is someone with an eight month old default suddenly having a window overlap issue due to more recent changes. Players with experience modifying their UI can simply remove the widget or move the window. Players that barely modify their UI should not be expect to be able to solve these problems themselves.

I would like to apply the new default UI to anyone who is using an old default. Especially since the new window position handler is able to reset the UI to default upon detecting a screen resolution change. Clearly if you have modified your UI this is not something you want. To solve this I implemented an opt-out for default UI updates.

Important: there is now an option “Stay up to date” in “Settings/HUD Presets” and it is enabled by default. Currently, this option does nothing. In February this option will set the UI Preset to the default window layout, whatever that may be by February. Other things may be changed as required. If you want to keep your custom UI then you have by February to disable the option.



  • Cost 560 -> 600
  • HP 4200 -> 4000
  • Missile reload time 10s -> 16s (40 -> 25 DPS)


  • Projectile speed 330 -> 400 elmo/s


  • Speed 2.5 -> 2.3 (75 -> 69 elmo/s)
  • Slasher missile weapon replaced with Recluse-Rogue: a burst of four wobbly Rogue missiles with 8s reload.


  • Capture decay now applies 5s after taking capture damage instead of instantly. This means that one Dominatrix can capture anything if it waits for long enough.

This behaviour was always the intention, however, it was not (probably never) functional. This is mainly a buff against large units because removing their 4% capture decay while actively being captured is a larger change for expensive units. This change is in a good direction because Dominatrix is meant to be anti-heavy.

Screamer now explodes like a Annihilator instead of a Defender.

Removed Surfboard. Something like Surfboard can be re-added but the current implementation was too broken.

Unit AI

Wolverine tactical AI is now better at staying out of Grizzly range. It is still not great at this though, since Wolverine has a large turning circle.

Improved Raven overkill prevention. Now it removes its attack order immediately upon realizing that its first target is doomed.

Global build command:

  • Added an auto-retreat option.
  • Added worker update rate option (for poor CPU/internet).
  • Fixed some performance and stuck unit issues.

Fixed Scorchers not diving Windgens and Mexes.


  • Added “Stay up to date” option to “Settings/HUD Presets”.
  • Set “minimapRight” as the default HUD panel layout.
  • Vote widget remembers its position.
  • Moved vote widget to the left side of the screen for the new default UI layout.
  • Moved chicken panel default position to the top right of the screen (previously bottom right).
  • Powerplant descriptions are more descriptive.
  • Improved Strike Commander animation. Fixed Guardian Commander and Dante animation.
  • Improved capture controller visuals.
  • Improved Djinn Lamp placement. Placement is now cancellable and has better command queue interaction.
  • Mex placement now works with command insert.
  • Mex placement now works (consistently) with persistent build height.
  • Persistent build height now works with command insert.
  • Mex placement now works with both persistent build height and command insert at the same time.
  • Terraform construction updates more smoothly (technically, this affects balance).

Dante animation comparison:


  • Added good start boxes for LLTACompleteV2.
  • Fixed unit reclaiming issue, it is now exactly as hard to area reclaim your own units as it should be.
  • Melee chicken attacks are no longer blocked by wrecks.
  • Fixed Gauss ambient occlusion.
  • Fixed Raven overkill prevention bug which caused them to occasionally not fire at static targets.
  • Fix Pyro aiming, they now know that they have a spherical weapon.
  • Fixed Lamp destruction bug.
  • Removed some deprecated modoptions.
  • Lots of definition file cleanup.

Zero-K: Zero-K v1.4.12.7 – Sea Rework

The main change in this version is Aquanim’s sea rework. Sonar ranges are less arbitrary than previously – all sea units have sonar equivalent to their vision radius. Many ships have been changed significantly. Serpent has been removed entirely but there is a new surface ship with a sonic gun and Impaler-like missile (Siren). Amphibious and Hovercraft haven’t been changed besides sonar, but the new ships interact with those factories quite differently so you will still need to rethink your strategies.


In short: all sea units and Urchin can see underwater units, underwater units are not detectable by radar and long-range sonar sources do not exist. Being underwater functions like radar jamming does on land, except you can’t be seen by economy structures or land units.

In principle, being underwater is a lot like radar jamming, except that you are also invisible to non-Urchin structures, non-Vulture planes, and amphibious-pathing units from land factories. Here are the details:

  • All units produced by the Ship, Amphibious and Hovercraft factories, and the ship Striders, have sonar equal to their sight range.
  • Urchin has sonar equal to its sight range.
  • Commanders have sonar equal to their sight range.
  • Vulture has sonar range equal to its jamming range (700).
  • Other units and structures do not have sonar. Notably this includes Gauss, Aspis, Eraser, Ultimatum and Detriment.
  • Sonar Station has been removed.

We’ve investigated some preexisting sonar interactions and cleaned up some weirdness. One thing of note is that cloak and jamming on fully submerged units is penetrated by sonar (perhaps a recent engine change). To make this interaction more obvious we’ve made fully submerged units unable to cloak. This change barely affects game mechanics aide from saving energy and removing the underwater radar dot.

We also noticed that sufficiently deep units do not have any surface vision. This is an engine change and not part of the current design. However, it probably works so we’ll not put effort in to work around it for the time being.


Ship Factory has been substantially reworked. We’ve also taken the opportunity to remove a lot of conflicts with TA unit names (though some renames are just for consistency with reroles or for some theme). Overkill prevention and Unit AI has been implemented, but you may find bugs and foibles. Report these so they can be fixed please 🙂

Constructor – Mariner is a little more expensive and has sonar, but mostly unchanged.

Scout (Disarming) – Skeeter is renamed to Cutter and has increased range to be able to destroy any land mex reachable by Mariner. Be aware that the Scout Boat’s overkill prevention defaults to disabled, because it also tries not to hit disarmed targets. Under some circumstances you may wish to enable it.

Raider (Torpedo-Boat) – Hunter is now a torpedo-boat raider; it is much cheaper, smaller and faster, but is individually weaker in combat and no longer has a large area-of-effect.

Skirmisher Frigate (Missile) – Enforcer is renamed to Mistral and completely reworked. It is much cheaper and functions like a mobile Slasher. It fires weak guided missiles from long range (in particular it outranges Urchin, Scalpel, Defender and Stinger).

Riot/Raider Corvette (Shotgun) – Typhoon is renamed to Corsair; it is a little cheaper and faster, and armed with shotguns instead of machineguns. The shotguns make it effective against large targets at short range, however, its toughness has been reduced.

Riot/Assault Destroyer (Sonic Gun) – Siren (a new unit based on the old Daimyo model) has a sonic gun with some area-of-effect which is effective against lighter-weight surface and underwater targets. It also has a mini-Impaler missile for attacking statics. It is quite slow.

Artillery Cruiser – Crusader is renamed to Ronin; it is more expensive, more resilient, has slightly improved range and has more area-of-effect. It no longer has a depth charge sidearm.

Submarine Raider – Snake is renamed to Seawolf; it fills the same role as before, with a few numbers tweaks. The changes to how sonar works have affected its best use somewhat.

Anti-Air – Shredder is renamed to Zephyr and now has sonar but is otherwise unchanged.

Transport – Surfboard is unchanged, besides new sonar. Some bugs with transporting cloakers and jammers have been fixed.

Submarine Artillery – Serpent has been removed.

Strider Ships

The large ships have recieved some changes. Reef has some role issues which require improved drone control to fix.

Battleship – Renamed to Shogun and has a little more range and sonar. Otherwise unchanged for now; this needs some teams game testing but its overall role seems okay.

Carrier – Instead of its previous cruise missile, the Carrier stockpiles tactical missiles in 60s at 10 m/s, and fires them like a D-gun. This change is largely to avoid the current overload of weapon and drone controls. The Carrier currently retains the name Reef but this may be subject to change, as are the other properties of the unit. If and when the drone controls are improved there is some potential for adding a light carrier to the Ship factory. Something interesting and large (think Crabe or Grizzly) should go in the remaining build slot for the Shipyard and that could possibly be a miniature carrier.

Tactical Missile Sub – Renamed to Scylla. Now stockpiles in 30s at 20 m/s, twice its old rate. Similarly to the Carrier, this unit could potentially see further changes but needs more data from teamgames (and FFA).

Other Sea Units

Amphibious and hovercraft units are unchanged except that they all have sonar range equal to their sight range. Sea has changed around these units though so reevaluate their new place in sea. The sea interactions of these factories is open to change in the future, especially Duck torpedo range as well as everything about Scallop, Archer and Claymore.

After some testing we think that more amphibious units are viable than before. Buoy and Archer seem to be decent units to fight the reduced weight Hunter and Scallop is a bit less powerful. Hovercrafts are mostly unchanged except that Dagger is worse against the new raiders. Penetrator and Halberd are still powerful, unique units and Claymore has its uses.

Sea is not designed for Hovercrafts and Amphs to be 1v1 viable start factories. It seems that they might be viable on small maps, such as 8×8. However, we’ve found it useful to switch to these factories and teamgames should see many different factories ploped. This makes sea distinct from land in that there is one main factory and four support factories. We’re not too worried about this as the ship factory has a lot of complexity with its dual domain and 3 or 4 raiders. Sea 1v1s feel harder than land 1v1s which is probably a good spot for it.

Urchin range has been reduced a little and has slightly more health.

Ultimatum and Detriment no longer have sonar.

Sonar Station no longer exists.

Other Changes

Tactical AI:

  • Improved Penetrator, Pillager and Impaler AI. They are now less prone to wiggling at max range to match the exact wiggling of their opponent.
  • Scorchers now hug most unarmed or undodgable enemies instead of runing around them in tight circles.
  • Many things now keep their distance from death explosions. Only appies to Fight command.


  • Morph no longer purges slow damage upon completion.
  • Status effects (EMP, disarm, slow) now affect resource drain.
  • Commanders can now morph on Surfboards. They need to disembark to complete the morph in case they are no longer transportable.
  • Non-commander morph is now cancelled if the unit is loaded into a transport.


  • New UI chat is wider, backlog automatically toggles when entering chat.
  • Area reclaim is now back to reclaiming trees by default. Holding Ctrl while issuing an area reclaim order now ignores trees. The recent new behaviour can be enabled through Game/Unit Behaviour.


  • Chicken and player timeout windows no longer persist through different games with Chobby.
  • Fixed initial queue structure visualization on some maps.

Zero-K: Zero-K – November UI work

Learning from GDS, I have been focusing on the user interface this month. The current default looks like a disparate collection of panels arranged in a convention-breaking way and is probably the source of much confusion. Most of the work was spent on making the panels support enough skinning to make them look like they fit together. Another large part of the work was the complete rewrite of two of the widgets. Too many changes needed to be made and the widgets were unmaintainable spaghetti code from at least five years ago.

A not-insignificant amount of effort was expended on keeping the rewrites and new layout options compatible with the old defaults. Maintaining compatibility with the varied way people use and modify their UI probably increased the workload by at least 3x. Some compatibility options were missing over the month but they are probably all present by now. You can try out the latest work in Settings/Hud Presets with “New UI Minimap Left” or “New UI Minimap Right”.


  • Duck torpedoes are slightly better at homing.
  • Completely submerged units can no longer cloak.
  • Fixed Commander surface visibility and vulnerability. They should now be visible exactly when they can be damaged by weapons with no AoE.
  • Buffed Support Commander’s ability to shoot at things very close to it. In other words, added a workaround for its poorly thought out gun length as compared to its height.

Unit AI

  • Added Global Build Command. It is currently disabled but can be toggled through Game/Worker AI.
  • Added overkill prevention for Ravens against structures.
  • Fixed Raven diving insufficiently low against Commanders with speed modules.
  • Fixed jumpjet activation when retreating.


Rewrote the command menu:

  • Command menu hides itself if no units are selected.
  • Bound Priority to Ctrl+Q and Repeat to Ctrl+R.
  • Added consistency between clicking and hotkeys. Grid hotkey display is now consistent.
  • Reorganized factory production tab to group units by role and ease of use.
  • Added a command to clear the factory build queue.
  • Fixed Aspis icon border. It used to be bordered as if it were armed.
  • Added an option to make factory queue Alt insert put the new command behind the current construction instead of canceling it when repeat is not enabled. Repeat already has this behaviour.
  • Added an option to make Ctrl disable grid hotkeys while held.
  • Space+Click on command buttons now shows the command hotkey configuration menu.

Rewrote quick unit selector:

  • Factory selection can now be bound to hotkeys. They are unbound by default, I am experimenting with Alt+Q for my first factory, Alt+W for my second factory etc..
  • Selector panel can now be aligned vertically.
  • Fixed some really stupid things related to quick selection positioning itself.
  • Fixed flash upon switching between teams while spectating.
  • Selector supports spacing, padding etc..
  • Selector can now be skinned.

Economy panel:

  • Added warnings for metal excess and energy stall.
  • Changed the metal storage mechanics to make the resource bar actually full when you are excessing metal.
  • Fixed incorrect reporting of energy reclaim.

Reorganized main menu panel:

  • Removed tweak mode, FPS and game flag.
  • Made the menu behave properly when resized, removing or squishing its options.
  • Made the menu able to reduce to 32 pixels high to save space.
  • Rebound widget selector from F11 to Ctrl+F11
  • Removed binding to hide the menu. Esc now opens the menu identically to F10. Hiding the menu can still be bound with hotkeys.
  • Added a button to switch to the lobby, for Chobby users.


  • Added an option to disable the backlog arrow when not chatting.
  • Added an option to show the backlog arrow on the left.


  • Build height selection used to queue a terraform command and later queue a construction, based on your ping. Now terraform is properly queuable so both construction and terraform commands are sent simultaneously. This allows for much faster and bug-free structure placement.
  • Improved persistent build height visuals.
  • Persistent build height now works well when constructing floating structures.
  • Each type of terraform now has its own mouse cursor and queue icon.
  • Terraform now split builds, if you tell a spread out line of constructors to make a wall they will each work on their closest block.
  • Added a widget to replace the buttons underneath the minimap.
  • Fixed lasso terraform UI interaction with water.


  • Non-Mex structures can no longer be placed on metal spots. This isn’t quite a mere interface change because it is enforced in game mechanics.
  • Fixed docking API position remembering for non-docking widgets and added an option to only dock with the screen edge, not other widgets. Commander upgrade windows now remember their position.
  • Removed Stop and Repeat commands from units that have no use for them (such as Solar Collectors).
  • Added an option to toggle whether the mouse cursor is confined to the game window.
  • Fixed nuke launch warning location.
  • Tooltip healthbar display now updates instantly when a new unit is moused over.
  • Trees are no longer reclaimed by basic area reclaim. To reclaim them with area reclaim either hold Ctrl while giving the order or give the order with a tree at the center (left click and drag on a tree).
  • Fixed Space+Click being non-functional on anything underwater.
  • Fixed floating structure placement (Spring change, thanks USrankAdminhokomoko
  • Recon Commander replaces old Strike Commander on the Commander Selection icon.


  • Grid outlines now merge instead of adding their transparency on overlap.
  • Added HDR rendering widget. It is not fully featured so the HDR option is disabled and marked as experimental. Try it on in Settings/Graphics/HDR (experimental).
  • Claw ghosts are now much easier to see.


  • Fixed a lups error.
  • Lightning spark effects now form a circle, not a square.
  • Debris is now more consistent in inheriting unit momentum, it no longer drops vertically.
  • Fixed old Reef naming conflict.
  • Fixed invisible Crane wreck.
  • Fixed edge extension with water level modoption.
  • Fixed initial queue mex positions with water level modoption.
  • Added/fixed start boxes for Flooded Valley v2 and Onyx Cauldron 1.7.
  • Removed the little flags that sometimes appear in the top left corner of the map.
  • Removed some deprecated unit tags.

Zero-K: Zero-K v1.4.11.0 – Overpowered Raven Update

What this update lacks in balance changes it more than makes up for in stealth balance changes. These stealth changes are in the form of unit AI improvements and so, thanks to our motto ‘That which can be destroyed by widgets should be’, can be implemented without as much forethought as would be applied to real balance changes. We tend to even go further and implement unit AI directly into the game logic when it is merely possible (and often technically infeasible) for such a widget to exist.

Perhaps the most significant change is to Ravens. Now they only dive as low as they need to in order to reliably hit their target. This should make them much better against large, slow units (such as Reef) while leaving them unchanged against small units (such as Skeeter).

These notes also include changes from v1.4.10.0 to v1.4.10.2.


Advanced Radar no longer reduces radar wobble. The mechanic broke with an engine update, is barely used, and only existed due to legacy.

Removed Reef antinuke. Lets see how it goes.

Bantha can now shoot its Tachyon Accelerator at planes.

Commander Balance

Lightning Gun:

  • Damage – 256/640 -> 220/550 (EMP with flux 960 -> 825)
  • Reload Time – 1.83 -> 1.66

This has two main effects:

  • Bandit no longer 1-shot
  • Common units around 800 health (eg LLT, Warrior, Banshee) no longer stunned on the first shot

Derived stats:

  • DPS 140/350 -> 132/330
  • stun uptime 55% -> 60% (duration is 1s)

Also, fixed the Flux Amplifier upgrade accidentally reducing Lightning Gun’s accuracy.

Unit AI

Raven is now conservative about diving, carefully considering the size and maximum speed of its target and only diving as low as required to (almost) guarantee a hit. Previously it would dive as low as it could go against all targets.

Burst beam lasers (HLT, Penetrator etc..) now aim better against fast targets. Previously they would aim such that the unit would be hit in the middle of their beam time. This caused them to lead fast targets to a ridiculous extent and allow them to dodge and escape damage.

Buoy, Impaler, Rogue, Thug, Hermit, Rocko, Reef and Detriment (missile) now have overkill prevention against structures. Their in-flight projectiles project an aura of doom towards their target and cause potential assailants from thinking twice about increasing the doom further than necessary. This is basically an extension of the same change for missiles from the Overpowered Missile Update. Hammer, Ravager, Reaper, Crabe and Goliath (main gun) missed out for technical reasons but should gain the same overkill prevention in the future.

Units with slow moving projectiles now de-prioritize fast moving targets based on their current speed. For example, Hermits may now shoot stunned Glaives before unstunned Glaives just because they are much more likely to kill a stationary target. Scalpels are more likely to shoot at slow aircraft than fast aircraft.

User Interface

We’ve had a few interface improvements. Mostly to bombers and transports.

  • Alt+r is now a hotkey for Repeat.
  • Cleaned up the selection key hotkey menu and added a few more options.
  • Double pressing L with a mixed selection of transports and units now causes the selected transports to pick up the units and, if the units have orders, ferry them to their destination.
  • Bombers now set themselves to Fire at Will or Hold Fire depending on whether they have an Attack Move or Patrol command.
  • Bombers with a single Attack Move command will fire at the first target they come across and not return after reloading. Set bombers to retreat, patrol or queue multiple commands to override this behaviour. The aim of the change is to make Attack Move for bombers behave a bit more like Attack.
  • I was surprised to discovered that Air Repair Pads can have a command queue, like factories, which are applied to aircraft when they are let go. I remember implementing this and apparently did so eight months ago yet completely forgot.


Removed almost all of the weapons from Zero-K (around 6400) to significantly improve load times. Also, removed about 400 units.

  • Reduced Firewalker and Racketeer firing and impact sound volume.
  • Fixed Recon commander breaking if Personal SHield and Disruptor Bomb are equipped.
  • Cloaked Warlord no longer gives its position away with wakes.
  • Fixed some wreck values and names.
  • Fixed Claws incorrectly being set to hold fire when cloaked.

Zero-K: Server with scale testing

The first server update with visible user throttling is soon to be released. This is part of ongoing work to make the server able to scale to a large number of players. Currently, everyone can see everyone else and this which works for a few hundred users. However, the server is expected to die with the load under even conservative release estimates (at least for a short period, which is when stability is most important).

The change amounts to reducing the usefulness of the user list in #zk. Other players will not appear to be online unless you share a battle room or non-#zk channel with them.

We understand that this hurts the usefulness of #zk for our current community, however, the feature needs testing. We plan to enable full visibility throttling for #zk for a few days. After we are happy that it works we plan to throttle visibility after the first 100 people in #zk, effectively reducing the user list to its current usefulness when the user count is low.
Third party lobbies may be broken by the change. SWL might receive an update in time. I have not heard anything from the developers of other lobbies. ZKL is still supported, for now, so has an update for the change.