Difference between revisions of "AI War 2:The Final Cycle"

From Arcen Wiki
Jump to navigation Jump to search
 
(532 intermediate revisions by 9 users not shown)
Line 1: Line 1:
== Known Issues ==
+
== Next Release Notes ==
  
* Any bugs or requests should go to our [https://bugtracker.arcengames.com/ mantis bugtracker]
+
[[AI War 2: Post Completion]]
** If you need to submit log files, those can generally be found under your PlayerData folder in the folder your game is installed in.  The most relevant one is called ArcenDebugLog.txt.  You can send us the whole thing, or just strip out relevant parts.
 
** In rare cases, mainly if your entire game crashes (that almost never happens), we will need your unity player log.  That gets overwritten the next time you run the game after a crash, unlike the other log.  These can be found here:
 
*** Windows: C:\Users\username\AppData\LocalLow\Arcen Games, LLC\AIWar2\Player.log
 
*** macOS: ~/Library/Logs/Arcen Games, LLC/AIWar2/Player.log
 
*** Linux: ~/.config/unity3d/Arcen Games, LLC/AIWar2/Player.log
 
  
* '''Multiplayer is in public beta, as noted below.'''  There is a [[:Category:AI War 2: All About Multiplayer|detailed multiplayer guide]] that we are working on building up.
+
== What was this phase all about? ==
  
* Feel free to [https://discord.com/channels/240637654717300736/242012213580136448 join discussions on discord]!
+
We finally got out of the endless beta of The Great Refactor, and DLC1 had been been majorly beefed-up and multiplayer was better than ever.  This phase marked the very last stages of the multiplayer beta before it left that status.
  
== What Does Multiplayer Beta Mean? ==
+
This phase was also a concerted shift back to working on DLC3 (The Neinzul Abyss), which was the final DLC for the game.  Many of the various remaining kickstarter items were also taken care of (though a few last backer rewards still lingered after this period), plus some other bits that we just always wanted to add for the game.
  
[[:Category:AI War 2: All About Multiplayer#Initial Caveats And Related Resources|Please see this link for details on multiplayer.]]  This wound up taking up too much space in this document, so all of the multiplayer-relevant bits have been moved to the other page.
+
This all culminated in the release of DLC3 and the AI War 2 Complete Edition.  You can read [https://store.steampowered.com/news/app/573410/view/3180113694781365187 a retrospective of the entire project] that came out with that, if you like.
  
== What's this phase all about? ==
+
== 5.000 End Of An Era ==
 +
(Released April 22nd, 2022)
  
We finally got out of the endless beta of The Great Refactor, and DLC1 has been majorly beefed-up and multiplayer is better than ever.  That said, multiplayer is still in the very last stages of its own beta.
+
* The main menu has been updated to reflect the fact that multiplayer is no longer in beta status.
  
With this new phase, we have fully shifted back to working on DLC3 (The Neinzul Abyss), which will be the final DLC for the game.  The various remaining kickstarter items will also be taken care of, plus some other bits that we just always wanted to add for the game, and after that we'll be moving on to other projects aside from bugfixes and balance tweaks and modder-support throughout 2022.
+
=== DLC 3 ===
  
The target release for DLC3 is in April of 2022, and that is when we'll also have the AI War 2 Complete Edition.  After that, it will just be fixing material defects, and supporting modders.  We expect it to have a ''long'' life if AI War Classic is anything to go by. The game is in a really good state and only getting better, and doing a refactor of this scale near the end of the project development cycle is a sign of our commitment to that longevity.  Even if you aren't giving us more money in the future for this title, we want you to be able to enjoy it for years and years.
+
* Given a report that the Samurai Frigate and accompanying Katana sub-units were rather weak adjusted the units to have a much more applicable niche.
 +
** Instead of only having a bonus when enemy armor exceeded 180mm now has a split set of bonuses. If the target has no shields do an extra 50% damage. If the target armor is below 80mm does triple damage.
 +
** Moved 300 base damage from the main entity to the sub-units. These now comprise a significantly larger share of the total damage potential.
  
== Beta 4.001 ==
+
* Fix some typos in the necromancer journal
(Not Yet Released)
+
** Thanks to Strategic Sage for reporting
 +
 
 +
* Fix a possible bug if you are trying to hack-swap a necropolis while it was still under construction
 +
** Thanks to ptarth for reporting
 +
 
 +
* Fix a null reference exception in the necromancer fleet code
 +
** Thanks to Strategic Sage for reporting
 +
 
 +
=== Bugfixes ===
 +
 
 +
* Fixed error complaining for missing DLC1 when DLC2 is active.
 +
** It regarded Makeshift Drones missing the encyclopedia_counting_redirects_to that is set to the DLC1's Makeshift Drones.
 +
** Added a new "skip_error_message_if_encyclopedia_counting_goes_to_is_missing" tag to prevent the game from complaining in these edge cases.
 +
** Thanks to Lord Of Nothing for the report.
 +
 
 +
* Fix a memory leak in the CPA Bunker code
 +
** Thanks to Matt Dyer for reporting
 +
 
 +
* Any related units to a notification on the top bar of the screen now get extra frequent syncs from the host to the client in multiplayer.
 +
** This should solve various lingering issues with timers being out of sync, data being slightly stale, etc.  There aren't that many notifications up there even in the super crazy cases, so just making sure that the client and host are extra in sync on those items is not a big network load.
 +
 
 +
* Added a new IsUltraFrequentSyncedInMultiplayer flag on world-external and faction-external data for multiplayer purposes, and applied it to the AIP central info from world-external, and the sentinels data from faction-external, so that MP clients are really frequently getting updates on the status of AIP and waves and similar.
 +
** Tested, and verified that wave warnings and similar are perfectly in sync now.
 +
 
 +
== 4.995 DLC3 Release Candidate 1 ==
 +
(Released April 21st, 2022)
 +
 
 +
* Fix a mistake where self-assembly unit tooltips were showing the wrong value on the Full Tooltip
 +
** Thanks to zeus and ptarth for reporting
 +
 
 +
* Fixed a longstanding issue where if you had an issue on load in the first couple of seconds of it starting, or if you closed the game during the first few seconds of it trying to load, it would lose your settings.
 +
 
 +
=== DLC3 ===
 +
*Added a bunch of Quickstarts for DLC 3
 +
* Add necromancer journals for shipyards, totems, towers and modules.
 +
** Thanks to zeus for suggesting and contributing the text
 +
 
 +
* Fixed a bug with the Migrant's Dynamic Description not being entirely accurate in a particular fringe case
 +
** Thanks to Strategic Sage for the report
 +
*Elderlings now all have high albedo for theming and balance (counterplay)
 +
*Transcendent Elderlings statblock updated to make this truly final tier. Not quite Jormugandur but close
 +
*Transcendent Elderlings (aka Yellow Star / Red Giant Elderling)  Weapon Rework
 +
**Both have same weapon weapons. Primary weapon is a fan beam (yellow and red, respectively). This powers up new, secondary weapon
 +
**Supernova weapon added. Requires 10 weapon points to fire (via primary weapon attack). Unleashes a supernova blast centered on itself with effectively planetary range hitting up to 500 targets. Ships with albedo >=0.7 take only 1% damage
 +
*Transcendent Flagship operational! Acquire this by summoning and defeating a Transcendent Elderling
 +
*Draugr ROF increased from 17s to 12s. Damage reduced from 1,700 to 1,200. Has same DPS but should be more impactful in a fight due to its knockback effect applying more often
 +
**Draugr's gravity generator now has the same range as its attack
 +
**Thanks to Starkelp for pointing out this unit was not living up to its potential
 +
*Increased Ikiryo gravity generator range so these aren't outshined by Draugr
 +
*Skeleton Lord Homes create 3 Lords per home from 2
 +
**Thanks to Tom for pointing out these were a bit underwhelming
 +
 
 +
* Added Amber Turret to the lineup of available beach heading options for Sappers. This is a paralysis user that loves picking on smaller targets. No longer just Lazurite spam 24/7!
 +
 
 +
* Disable the bubble forcefield modules for the necromancer due to some balance concerns on discord
 +
** The module will no longer appear in the UI. Existing games with ships that have used this module will have balance problems since you can no longer interact with the module (even to disable it).
 +
 
 +
* Bubble forcefields from modules are now immune to Fusion's shield bypass, just like regular bubble force fields
 +
** Thanks to Strategic Sage for reporting
 +
 
 +
=== Balance ===
 +
 
 +
* Significant balance adjustment to ships included in FRS picks. Due to complaints that the paper numbers always made fleet boosting options better even before the boosts are applied there have been some changes made.
 +
** Fleet boosting lines have been standardized to start at Mark 3 instead of Mark 5 and 6. These are mainly picked for the boosts they give rather than direct combat benefit of the line itself. Expatriate tech options still start at Mark 2.
 +
** Both fleet boosting lines and expatriate tech options have been adjusted to use standard line sizes with one exception. The Pincushion Corvette has a base line size that remains lower because of its significantly higher durability and damage output when compared to a standard Concussion Corvette.
 +
*** End result is fleet boosting lines end up ever so slightly less OP in of themselves while the bonuses they grant are still the star of the show in Humanity Ascendant. In Expert mode they don't have a significant advantage in line size and starting tech level when comparing options.
 +
 
 +
* Its been a long time since the Poltergeist was moved from T1 to T2 exowar tier. It was never touched up stat wise to remotely belong with its newer peers.
 +
** Hull and shields have been adjusted to the same values as all other T2 exowar units.
 +
*** Hull 6,000,000 -> 12,000,000
 +
*** Shields 3,000,000 -> 6,000,000
 +
** The speed of the unit has been revised upwards from 300 to 500. All the better to slip through a gap in the player defenses and snipe command stations.
 +
** Additionally with the increased durability its base metal value has been adjusted upwards to the T2 standard to better reward successful metabolism kills of this unit.
 +
 
 +
== 4.025 Lightning Conduction ==
 +
(Released April 20th, 2022)
 +
 
 +
* Beacon factions should now spawn with a random colour that's hopefully not to close to any other faction in the game.
 +
** Suggested by Daniexpert
 +
 
 +
=== DLC 3 ===
 +
*Spectral and Vengeful Wights now require a Mark 2+ Necropolis to be enabled
 +
**These variants are a tier stronger than the others
 +
*Royal Mummy Bodyguards now have the right multiplier to their stats (they were actually weaker than non-bodyguards)
 +
*Decaying Mummy main attack reduced from 15K to 8K. This variant didn't get the reduction of the other Mummies, but is still stronger than its brethren
 +
* Fix a bug where the transform necromancer flagship was either always visible (even if you had no blueprints) or never visible at all. It is now visible only when you have blueprints.
 +
** Thanks to a number of people for reporting in its various forms, including ptarth and zeusalmighty.
 +
 
 +
* Brutal Guardians now give the necromancer 5 science
 +
 
 +
=== Bugfixes ===
 +
 
 +
* Fixed a subtle reflection-based bug that happened with trying to load the external data links after you changed your mod and expansion statuses around.
 +
** The most notable extant example of this was having a necromancer faction selected in the lobby, and then disabling some DLCs but leaving DLC3 on.  However, there were a variety of other ways this could be hit, as this was a generalized issue.  It was just subtle enough that it was hard to bring out any other fashion.
 +
** The core of this issue is actually a very interesting computer science situation.  Essentially, it went like this:
 +
*** Class ExternalInfo has a variable CachedExternalType on it, and a Pool that uses "this.CachedExternalType" inside an anonymous method to generate members of the pool.
 +
*** After reload of the xml and thus also reset of ExternalInfo, the following things would be true:
 +
**** CachedExternalType was not null in the outer method, and in fact was reset just perfectly.
 +
**** Inside the anonymous method, it "this.CachedExternalType" would be null, presumably because it had been JIT compiled to point to a specific reference that no longer exists.  This is one of those places where the intent of reflection and anonymous methods can get a bit lost.
 +
*** Years ago, Keith and I had found the general solution to this is to declare a local working variable copy of the member variable, and have the anonymous method simply refer to the cached local copy.  This tends to solve a number of issues, but in general ensures that the anonymous method always has the latest copy of whatever is going on in its specific local context.
 +
**** It's actually possible that this is not a reflection issue, but an order of operation threading issue, although I doubt it.  Experiments could be run, if we wanted to figure out the exact cause; or we could look at the JIT results.  But really, diving that deep serves no particular purpose at this point.  The solution is simply to remember to use local cached copies, regardless, and this is a case where I did not.
 +
** Anyhow, this seems to solve the reported problems, and may solve some other unrelated problems after doing an xml reload, as well.
 +
** Thanks to Dragoris, Badger, and Strategic Sage for reporting.
 +
 
 +
* The "ultra frequent" syncs from the host in multiplayer now includes information on the visibility status and destruction status of each planet.
 +
** This was already synced across just fine, but throttled in such a way that it was noticeably late getting to clients at times.  This could be a matter of a few seconds in the case of relatively small/early games, or it could be longer if the time-slicing/data-throttling was just taking that long to grind around and get it across.
 +
** The intel info is something that is immediately and visibly wrong when it is wrong, and so having just that part be kept in closer sync rather than the large and rolling sync makes intuitive sense.
 +
** Thanks to Dismiss, fierspier, and others for reporting.
 +
 
 +
* Fixed a bug where the neighbouring planets of an Ark Empire Homeworld didn't have their Intel set properly.
 +
** Works only on new games!
 +
** Thanks to Glyoxim for reporting.
 +
 
 +
* Add in some defensive code to the Migrant description appender
 +
** Thanks to Ithuriel0 for the report
 +
 
 +
* Added more precise spawning logic for Custodian subfactions, in an effort to prevent the deathmatch bug from re-occurring
 +
 
 +
* Added some extra logging to try to figure out what broke a specific savegame, but unfortunately after reviewing logs and code review, there are just no hints as to anything that would be wrong, going all the way back to the builds from March 25.  At least a few bits of the code are more clear now in the logs.
 +
** The next step is to go back to the original game version of this save and see if I can load it there, in which case I can do some differentials that will be more informative.
 +
 
 +
* Put in some self-correction for null FleetMember groups inside fleets.
 +
** Thanks to rem_tuas for the log with the report.
 +
 
 +
* Fixed an exception that could happen in the deserialization buffer if the timing was just wrong when you exited to the main menu.
 +
** Thanks to slake-moth, Dismiss, and NRSirLimbo for reporting.
 +
 
 +
* The game is no longer going to ever care or freak out about ships changing fleets if it's the same faction, or if it's between two player factions.  It's been a long while since we had the accidental ships moving between fleets issue, and the problem cases were never of this sort to begin with.  The errors that have been popping up since then were all false positives.
 +
** Thanks to firespier for the most recent report.
 +
 
 +
* Fixed a bug with the Ark Empires where they were not seeding officer fleets at all (they should have been seeding golems only, no arks).
 +
** Thanks to Daniexpert for reporting.
 +
 
 +
* Ark Empires can no longer start on the same planet as another player.  That had all sorts of issues when done in multiplayer.
 +
** Thanks to Ushgarak for reporting.
 +
 
 +
* Fixed the "No RepairMissingCenterpieceFromMembershipContents logic for fleet.Category:PlayerLoose" error, which was harmless but annoying.
 +
** Thanks to Ben H and Dismiss for reporting.
 +
 
 +
* Fixed some exceptions that could happen in tooltip formatting.
 +
** Thanks to Dismiss for reporting.
 +
 
 +
* Fixed a number of exceptions that could happen on MP clients if they did not yet have their instigator info from the host.  It now is just silent while it waits for that to arrive.
 +
** Thanks to Dismiss for reporting.
 +
 
 +
* Fixed yet another set of errors that could happen when exiting to the main menu from the game.
 +
** Thanks to Dismiss, Cyborg, and Hermanni for reporting.
 +
 
 +
* Fixed an exception that could happen at "pathfinding debugStage 3000", probably right after map topology changes.
 +
** Thanks to Dismiss for reporting.
 +
 
 +
* Fixed a very annoying issue where if you hit enter in the modal textbox popup, it would not save your changes, but instead would just exit.  This was affecting the edit fleet name popup as well as a few other places.
 +
** Thanks to Dismiss for reporting.
 +
 
 +
* Fixed an exception that could happen in GetAISentinelsCoreData and TryGetAISentinelsCoreData, which would lead to various issues.
 +
** Thanks to rem_tuas for reporting.
 +
 
 +
* Fixed an issue where if a unit transforms into multiple units in multiplayer, only one of them would get immediately updated to the client.
 +
 
 +
* Fixed some errors that could happen in WriteTextToSecondLineOfLeftSidebarInLobby() on human factions.
 +
** Thanks to easytarget for reporting.
 +
 
 +
* Fixed an issue in the load save window where it was possible for it to be showing saves from the wrong campaign (wow was this confusing as a user).
 +
** Thanks to Strategic Sage and Dismiss for reporting.
 +
 
 +
* Fixed an issue that was causing a lot of the AOE explosion effects (the lighting blasts and so on) to not appear properly.
 +
** This may have been going on since the time of the great refactor (aka sometime pre-4.0), but it's hard to be sure exactly how long.
 +
** Essentially, some of the code which was great for runtime was no longer able to load via reflection for analysis in the unity editor.  So an interface had to be used instead for the array of that class which is used at runtime, thus providing a level of abstraction that would not foul up the editor-time reflection.
 +
** Thanks to Glyoxim for reporting.
 +
 
 +
=== Mod Updates ===
 +
 
 +
* Big balance change to the Lightning Artillery Frigate from Exotic Ships (ExS):
 +
** Increased the base damage from 10000 to 25000, increased the chain link radius from 1500 to 5000 and increased the amount of times that the lightning can chain from 2 to 4 times. Reduced the damage dealt to non-primary targets from 25% to 15% of the base damage. Assuming my math is right this increases the potential DPS without damage modifiers from a pityful ~833 to a much more reasonable ~4708.
 +
 
 +
== 4.024 Graveyard Digger==
 +
(Released April 19th, 2022)
 +
 
 +
* 300ish new planet names to the Standard planet name set have been added from the surveys from kickstarter backer rewards.
 +
 
 +
* The new achievements for both DLC1 and DLC3 are now in place on Steam and GOG.
 +
 
 +
=== DLC 3 ===
 +
*Increased orbital speed of necrobombs from 10 to 12
 +
*Wight balance/rework
 +
**Reworked Infectious Wight's weapon. Now fires 3 grenades at a time, splitting damage between targets caught in the blast radius
 +
***Thanks to CRC for suggesting a thematic replacement
 +
**Possessed Wight has damage reduced from 50K to 20K, but gains x3 multiplier to mass >=7tx
 +
**Vengeful Wight attack increased from 3K to 4K. 
 +
**Spectral Wight no longer debuffs with its primary attack (a tesla-like weapon). Instead, it now gains weapon points with each attack. These weapon points multiply the base damage of its new on-death attack, up to x10 damage. This is based of design for classic's Fireflys.
 +
***Thanks to Puffin for creating and sharing this awesome mechanic!
 +
*Revenants now have a powerful secondary weapon that deals corrosive damage to massive units. This weapon requires weapon points to function, which the primary weapon now acquires by firing.
 +
 
 +
=== Bugfixes ===
 +
 
 +
* Hot fix to D.Singularity Golem causing errors without DLC 3 enabled
 +
** This led to a harmless error on startup that was nonetheless annoying.
 +
 
 +
* Added a notable performance improvement for games that have been running for a long while without reloading or closing the game or going back to the main menu, especially when there are a lot of shots being fired.
 +
** As part of this, also adjusted how our central dictionaries are handled for shots, ships, and wormholes, and thus have removed any chance that a deadlock was resulting from them.
 +
** Thanks to Matt Dyer and Sol for the "thread stalling" reports, which was the performance issue in question.  Without the thread dump from them, this would never have been found!
 +
 
 +
* Hitting reset to defaults in the lobby should now no longer be able to throw exceptions related to game commands being back in the pool.  The errors were spurious in the first place.
 +
** Thanks to Badger for reporting.
 +
 
 +
== 4.023 Beacon Expansiveness ==
 +
(Released April 18th, 2022)
 +
 
 +
=== Base Game ===
 +
 
 +
* Add a journal for the beacons explaining whats going on.
 +
** There's been a lot of pushback/critique of the beacon mechanic, so hopefully this will clarify things for players
 +
 
 +
* Beacons:
 +
** Now the Devourer Golem and the Human Resistance Fighters can be activated via beacons during the game.
 +
** Now beacons will be randomized at the start of each game.
 +
*** Some beacons (HRF, Sappers, FS) are always seeded.
 +
*** Added a new XML tag 'beacon_tier_for_seeding' used to sort the factions into 4 groups for seeding.
 +
 
 +
=== DLC1 ===
 +
 
 +
* Beacons:
 +
** Scourge's beacon is expanded with another hack that gives a scourge both to the player and the AI.
 +
** Added a beacon for Chromatic Horror.
 +
 
 +
=== DLC2 - New Music Track! ===
 +
 
 +
* New music track in DLC2 -- The Zenith Onslaught!
 +
** The new "Dark Zenith" track is an excellent 3:39 piece that will play during times of excitement, or when the Dark Zenith appear, if you have adaptive music enabled.
 +
** This is a piece that is really in the classic mold of AI War, going all the way back to the roots of the series.
 +
** Major thanks to Badger and Pablo for jointly commissioning this and surprising Chris with it, and of course to Pablo for composing.  This is truly a treat.
 +
 
 +
* Beacons:
 +
** DZ and Svikari get their beacon.
 +
 
 +
=== DLC3 ===
 +
*Wrangler Destroyer no longer has a reverse tractor beam. Instead, has a tractor beam that works on mass between 6-13 ( 6<X<13 )
 +
**Reverse Tractor was more interesting in theory than practice for this unit
 +
*Removed Electrotoxic damage from the Magnet Ward
 +
**Thanks to Sage for pointing out this was too powerful for a non-FRS ward
 +
*More Mummy nerfs
 +
**Reduced devour-vampirism from 20% to 10%
 +
**Reduce death gaze attack from 9K to 6K
 +
*Some tuning to the Elderling intensities (AI allied) for 1-4. Basically, High Tier Elderlings will rarely or never spawn at these intensities
 +
*Doubled Mines for Orbital Stealth Guard posts and they can spawn in a second, farther ring
 +
* Fix a tooltip problem in DLC3
 +
** Thanks to a number of people for reporting
 +
 
 +
* Add an optional SharkB For Necromancer setting
 +
** Requested by zeus
 +
 
 +
* Sapper Updates:
 +
** Fix some bugs where the sappers weren't building turrets correctly
 +
** Give the sappers some more beachheading options
 +
** Necromancer-allied sappers start with some extra resources to make them a bit more impactful
 +
** Sappers can now spawn fewer beachheading turrets
 +
 
 +
* The templar assault waves against the necromancer now mention how many wave leaders there are
 +
 
 +
* The planet combat hovertext now shows how much science/hacking/essence has been earned by the necromancer as well as the ships raised
 +
 
 +
* Add some defensive code to the choose-a-specific-necropolis hack path
 +
** Thanks to daniexpert for reporting
 +
 
 +
* Lots of DLC3 Achievement XML was added
 +
** Thanks to zeus for grinding these out
 +
** Some additional C# provided to support these achievements
 +
 
 +
* Add some quickstarts from Dragoris and Strategic Sage
 +
 
 +
* Beacons:
 +
** Added beacons also for Elderlings, Migrant Fleets, Sappers and Wild Hives.
 +
 
 +
* Migrant Fleets
 +
** Now has two new Journal Entries to flesh out the total gameplay loop
 +
** Now has more dynamic tooltips, including origin planets and movement timers
 +
** Fixed a bug which resulted in no more Migrants arriving once you captured a planet more than 5 hops away from your homeworld
 +
** Various other small touching ups on descriptions and journals
 +
 
 +
* Minor Faction Team Elderlings will prefer to spawn with an ally, but can also spawn on empty planets
 +
** I suspect Elderlings spawning w/o any allies will be quite weak, but perhaps people just want a readily farmable source of science?
 +
 
 +
* Fix a typo in the caged skeleton description
 +
 
 +
* Necromancer upgrades that are only available to higher mark Necropolises now point this out in the hack tooltip even if you can afford them
 +
** Requested by Daniexpert
 +
 
 +
=== Bug Fixes ===
 +
 
 +
* Make the nanocaust better able to spawn in spectator games
 +
** Thanks to firespier for reporting
 +
 
 +
* Fix an exception for MP clients in DoOnAnyDeath
 +
 
 +
* Fix a bug where deepstrike was not being calculated properly, causing the Reserves to be bashful
 +
 
 +
* When editing the loadout for a modular ship, the UI now prints the planet that the ship is on (where appropriate)
 +
** Thanks to Keith C for suggesting
 +
 
 +
* Make the hunter even more careful about flying into player planets by accident
 +
** Thanks to Puffin for reporting
 +
 
 +
* Fix a bug in fireteam tracing
 +
** Thanks to Puffin for reporting
 +
 
 +
* Fixed a soft bug that could occur when loading Splintering Spire games
 +
 
 +
== 4.021 Scourge Of A Beacon ==
 +
(Released April 15th, 2022)
 +
 
 +
* Tweak the self-repair/disassemble UI code to remove a minus sign; it was confusing
 +
** Thanks to Ithuriel for reporting
 +
 
 +
* Some tweaks to whether necromancer ships show their cap
 +
** Thanks to Strategic Sage for reporting
 +
 
 +
* Don't play the outguard journal in a necromancer-only game
 +
** Thanks to Strategic Sage for reporting
 +
 
 +
* Remove an excessive period in the necromancy tooltip
 +
** Thanks to Ithuriel for reporting
 +
 
 +
* Change the wording for an Expert Mode journal to clarify the behaviour of turrets with reduced range
 +
** Thanks to Dismiss for the report and Strategic Sage for the text of the update
 +
 
 +
* Fix a bug where modular ships were double counted in the selection menu
 +
** Thanks to ptarth and Ecthelion for reporting
 +
 
 +
* Fix a few typos in the Settings menu
 +
** Thanks to schoenberg for reporting
 +
 
 +
* Fix a bug that was causing some hunter fleet hitching motion
 +
** Thanks to Puffin Emeritus for reporting
 +
 
 +
* Add some code to make the hunter fleet less likely to blithely traipse into player planets on their way to somewhere else
 +
** Thanks to Puffin Emeritus for reporting
 +
 
 +
* Fix some typos in necromancer hack tooltips
 +
** Thanks to Strategic Sage for reporting
 +
 
 +
* The Scourge Beacon now works
 +
** Thanks to Dragoris for reporting
 +
 
 +
* Non-player nasty picks are no longer forced on for Expert+ mode.  They are only forced on for Logistician+ mode, but are still available to all modes.
 +
** Thanks to CRCGamer and Strategic Sage for suggesting after discussions on discord.
 +
 
 +
=== DLC 2 Balance ===
 +
*DZ Harpoon Launchers rate of fire increased to 30 seconds from 17 seconds
 +
 
 +
=== DLC 3  ===
 +
*Templar diff adjustments
 +
**Intensities 1-4 no longer spawn castles. This lowers the power ceiling for the Templar significantly
 +
**Intensities 1-5 Spawn "Weak" Sovereigns. These have x0.15 health and  x0.1 damage. They spawn fastness instead of castle's
 +
**Lots of nerfs to Templar / buffs to player for Templar-intensities lower than 5 (in addition to the ones noted above)
 +
 
 +
*Nerfed Necromancer Orb of sight damage, from 150 to 75
 +
**Thanks to Mac for the discord feedback
 +
 
 +
*Updated Foppish Venator to have a corrosive attack. Some minor adjustments to a couple of venators
 +
*All guardposts (including the unique ones from the DLC 1 and 2 expansions) now have Necromancer "Tower Defense" Tech if you have DLC 3 enabled
 +
**This is to give the Tower Defense Tech a fun and powerful supplement to their previously underwhelming defense tech
 +
 
 +
* Add some sandbox options for the necromancer, available in Galaxy Settings ==> Necromancer.
 +
** The first option is a multiplier for resource income; you can get up to 10x the hacking/science/essence
 +
** The second is bonus Hexes; you can get up to 10 bonus hexes per Necropolis.
 +
*** Thanks to DadsGamingAddiction for the suggestion
 +
 
 +
* The hovertext for a minor necropolis now explicitly tells you which fleet it's bolstering
 +
** Thanks to DadsGamingAddiction for the suggestion
 +
 
 +
* All the necropolis types can now build for your flagships. They are deliberately very slow at building to make shipyards desirable
 +
** Thanks to Ithuriel for reporting
 +
 
 +
* Sappers are more likely to build turrets near your Necropolises now
 +
 
 +
*Adjustments to the Treacherous Totem
 +
**Orb of Entropy
 +
*** now attempts_to_reach_orbital_point_at_speed="5000" (instead 8,000) to reduce jerkiness
 +
**Necrobomb
 +
***degrees_to_orbit_per_second="10"
 +
***attempts_to_reach_orbital_point_at_speed="5000"
 +
***Add necromancy damage to self-destruct (e.g., <death_effect_damage type="Necromancy" tier_name="Minor"/>)
 +
 
 +
*Orbital Stealth Guardposts now have variants with minefields
 +
 
 +
== 4.020 Hotfix ==
 +
(Released April 14th, 2022)
 +
 
 +
* The ZA build defenses a bit more slowly (I saw some complaints about that)
 +
 
 +
* Fix a bug with the Foppish Venators that was causing exceptions every few minutes
 +
 
 +
* Give the corrosive guardian and guard post a new overlay
 +
 
 +
* Add a scourge beacon with some options to serve as a template for others. I have not tested whether it works, but it should be easily imitated for other factions
 +
 
 +
* Neinzul Custodian changes
 +
** Hives now spread out through allied territory more actively, instead of being limited primarily to their allies' homeworlds
 +
** Roaming Enclaves now stick around in fights far longer, instead of immediately leaving the moment their opponents even remotely start losing
 +
** Player allied Custodian spawn rates increased to match NPC faction rates
 +
** Spawning reduction per existing custodians reduced by 33%
 +
*** This was originally put in place to prevent the Diamond Custodians from stacking 90% of their forces on the ai homeworld
 +
*** With the additional logic of hives spreading out, this is no longer as prevalent
 +
 
 +
== 4.019 To Hack, Or Not To Hack ==
 +
(Released April 14th, 2022)
 +
 
 +
*Renamed the "Fusion Tower" into the "Dispersion Tower" since it has the weapon of a dispersion turret (this is an orbital for the Ultimate Fortress)
 +
 
 +
*Ultimate Fortress is no longer hackable
 +
** This should be slain in glorious combat, not with some cowardly sabotage hack
 +
 
 +
* Fix a typo in the Maddened Elderlings journal and the Mummyies journal
 +
** Thanks to Strategic Sage for reporting
 +
 
 +
* Fix a bug where the nanocaust could sometimes sit around doing nothing
 +
** Thanks to Strategic Sage for reporting
 +
 
 +
* Fix a recent regression where you couldn't hack for many types of ships
 +
** Thanks to a number of people for reporting
 +
 
 +
=== DLC3: Other ===
 +
 
 +
* The Truant venator now spawns against both cloaking and high albedo ships. The Foppish venator now spawns against high mass ships
 +
** Requested by zeus
 +
 
 +
=== DLC3: Necromancer ===
 +
*Necromancer Hacks cost less points
 +
**Rift hacks from 25 to 20
 +
**Track Elderling from 10 to 1
 +
**Transform Elderling from 20 to 15
 +
**Corrupt Castle from 50 to 30
 +
**Claim Skeleton Amplifier from 50 to 30
 +
**Claim Wight Amplifier from 60 to 40
 +
**Claim Mummy Amplifier from 80 to 50
 +
**Transform Flagship from 30 to 20 (base hacking cost, still more expensive per mark of flagship)
 +
*All Necropolis now have a minor factory construction like the Phylactery
 +
**Shipyards will still be significantly better at reflecting
 +
*Wrathful Elderling/Flagship damage increased to 1,500
 +
**This W. Flagship was much weaker expected, this should be a pretty hefty buff
 +
*Orbital turrets now benefit from the Necromancer's "Tower Defense" tech
 +
*Mummy nerfs
 +
**Hull from 660K to 345K and Shields from 330K to 175K
 +
**Death Gaze attack reduced from 10K to 9K
 +
*Necropolis Summons should now spawn the right amount per attack
 +
 
 +
* Dire Guard Posts only generate AIP on death when they are owned by the AI
 +
** This makes them safe for the necromancer to capture
 +
 
 +
=== DLC3: Templar ===
 +
*Templar Encampment MLRS attack from 450 to 750
 +
*Templar Encampment MLRS attack from 750 to 1250 and Sabot attack from 8K to 9K
 +
*Templar Castle Sabot attack from 13K to 15K
 +
 
 +
== 4.018 Stability And Abortability ==
 +
(Released April 13th, 2022)
 +
 
 +
* In the internal debug menu (the one from the escape menu), there are now "Log All Threads" and "Abort All Threads" buttons.
 +
** If the game is getting stuck in a background deadlock, this will give us some information on it.  The tooltips have more information on it. 
 +
** If you press the Abort All Threads button, it may crash the game (in theory -- so far it has not in testing), but it gives us exact stack traces (within reason) for all the threads it is aborting.  Assuming that there is a stuck thread, and not a stuck Interlocked value, this will identify any deadlock for us to within the method that it exists in, at least.
 +
** If we wind up with still having deadlocks and no interesting thread outputs here, then I'll instrument the Interlocked values to keep an eye on those.
 +
** Thanks to ptarth, Pyrrhus, trabbo, and Sol for reporting.
 +
 
 +
* Fixed a one-line error that was causing multiplayer clients to eventually get a flood of errors relating to GameCommands already being back in the pool.
 +
** What was happening was that it was being executed twice on the client if the command was a frame late, rather than only executing once.  Mostly this would only show up after about 45 minutes of play, evidently.
 +
** Thanks to Badger, ptarth, Cyborg, and Dismiss for reporting.
 +
 
 +
== 4.017 Feeling Helpful ==
 +
(Released April 13th, 2022)
 +
 
 +
* Astro Trains and their prototype constructs now have their own Ship Class types for easier recognition.
 +
 
 +
* For player allied fireteams, double-count their friendly strength on a planet when deciding whether to attack
 +
** The goal of this is to make player-allied fireteams much more willing to enter a close fight to help the player.
 +
 
 +
===DLC 3===
 +
 
 +
* Skeleton, Wight and Mummy amplifiers no longer have a Ship Class of their own.
 +
** Thanks to ptarth for reporting.
 +
 
 +
* Fixed planetary damage and speed modifiers for everything appearing everywhere.
 +
** Thanks to Strategic Sage for reporting!
 +
 
 +
* Necromancers and Necromancer Sidekicks no longer have metal, energy and fuel shown in the special rows when looking at something buildable since they do not need to worry about those resources.
 +
 
 +
* Fix a typo in a Neinzul Faction journal
 +
** Thanks to Strategic Sage for reporting
 +
 
 +
* Fix a typo in a ZA journal
 +
** Thanks to Ithuriel0 for reporting
 +
 
 +
*Nerfs to orbital AI to make this appropriate for Moderate
 +
**Reduced # of Dire guard posts on HW from 6 to 3
 +
**Reduced budget across the board by about 10%
 +
**Thanks to Dismiss and Sage for feedback on how to keep this a moderate AI type!
 +
*Fixed some destroyers having the wrong tech
 +
**Thanks to Sage for pointing this out!
 +
*Sapper turrets/ships with cloaking now all have an albedo of 0.7 so they are properly dealt with by their counters
 +
**Thanks to ptarth for pointing out this inconsistency!
 +
*Elderlings start out with additional Feeble Elderlings at intensities lower than 5.
 +
**This is to accelerate Essence accrual for these lower intensities
 +
 
 +
* Redo how the Templar Initial Encampments spawn. Now each Templar Difficulty comes with a number of Initial Encampments to spawn (1 at >= intensity 5). When a new Rift opens, if it hasn't spawned enough initial encampments then we will choose an initial one.
 +
** This allows for the Templar to be made easier and more resource right at lower intensities.
 +
 
 +
* Fixed the Brutal Darkness Guardian being completely immune to tachyon beams instead of resistant.
 +
 
 +
* Nerfed the AI-Allied Sapper economy
 +
** Thanks to Strategic Sage for the balance feedback
 +
 
 +
* The Necromancer game lobby hovertext now explicitly disavows support for Challenger+
 +
** We are only going to balance the Necromancer for HA
 +
 
 +
*  Fix a bug where Skeletons/Wights/Mummies weren't being properly counted in the tech menu when loaded into a flagship
 +
** Thanks to Daniexpert for reporting
 +
 
 +
* Fix a typo in the skeleton decay description
 +
** Thanks to Ithuriel for reporting
 +
 
 +
* Some improvements to the Skeleton Tip (explaining how decay/attrition works), and to the Elderling overview explaining the Madness mechanism in more detail
 +
** Thanks to discussions on discord including Ithuriel and others
 +
 
 +
* Fix a bug where it was possible for an already-hacked Necromancer Amplifier to still be listed as a hack if you didn't have a flagship present
 +
** Thanks to Daniexpert for reporting
 +
 
 +
* The build menu entries for things like Skeleton/Wight homes now correctly show the mark-level for the bodyguards they would grant
 +
** Reported on discord, I don't remember by whom
 +
 
 +
* Nerfs to the Vanguard AI Type; it was too strong for Moderate
 +
 
 +
* Fix a typo in a number of hacking options
 +
** Thanks to Ithuriel for reporting
 +
 
 +
=== Bug Fixes ===
 +
 
 +
* Hopefully resolve the bug with the selection symbols not being correctly coloured.
 +
** Thanks to a number of people for reporting, including Zeus, Strategic Sage, Dismiss and Daniexpert.
 +
 
 +
* Fix a bug where a player could hack an ODSS > 3 times.
 +
** Thanks to Peter Ebbesen for reporting.
 +
 
 +
* Add a missing newline in the science sidebar hovertext.
 +
** Thanks to Ithuriel for reporting.
 +
 
 +
* Fixed the bug that didn't show the "Transform Flagship" hack for Necromancer Flagships.
 +
** Thanks to ptarth for reporting.
 +
 
 +
* Add some defensive code to the threat resource bar
 +
** Thanks to dismiss for reporting
 +
 
 +
=== Balance ===
 +
* Significant changes to the amount of speed various structures and overloaders hand out:
 +
** Logistic commands adjusted down to 130% base and +30% per mark level. Now cap at 310% at mark 7 instead of 550%. The first two upgrade ranks only cost 1500 each and get them back up to +190% speed at mark three.
 +
** Military commands instead now grant 300 flat speed plus 25 extra per mark. Makes slower ships respond faster without taking already fast strike up to speed caps.
 +
** Overloaders now grant 250 flat speed increase to allied ships. Roughly equivalent within a few percentage points for ships slower than 1000 naturally for the first couple overloaders but no longer multiplicative insanity at 3+. Now three overloaders is +750 speed instead of +174.4% speed.
 +
*** Spire Relics capped at double base move speed. This is roughly equivalent to the speed you'd get previously with two overloaders and now can get with one. If you want more overloaders to make the Spire fleet itself faster that is one thing, but no longer heavily incentivized to overloader stack.
 +
* Speed cap adjustments:
 +
** Combat ships are capped at 3000 speed.
 +
** Transports are capped at 6000 speed.
 +
*** With the revised logistic command speeds this means Agile stays quite relevant at lower levels of investment in logistic station tech. Regular transports only get close to the cap after four tech levels are purchased. The lower overall speeds make baiting harder and the AI tactic of trying to attack where your fleet is not more impactful. Its hard to make the AI seem smart when the player could just load up a transport and zoom over the highway at over 15000 speed to counter almost any attack directly.
 +
* A change to distributed economy power generation:
 +
**Previously too much power was granted from the asteroid power plants just by virtue of a station being an economic. No station upgrades required, and if the player does look at the upgrades its direct upgrades for high cheese. Namely that asteroids that are Mark 7 on an economic would grant 200,000 power each. The bonus for a station simply being economic has now been reduced from 4x to 2x. In exchange each mark level of economic stations in distributed is +200,000 power instead of +100,000 per mark level. This means the player will need at least a couple more power worlds on average instead of being able to hard pocket just a couple worlds that generate a few million or more power. And that just ignoring economic station tech isn't as feasible.
 +
 
 +
* The ZA is not allowed to claim any of the DLC1 Dyson-style homeworlds in its Territory
 +
** Zenith Dyson Spheres were already protected
 +
** Thanks to TheIronBird on discord for reporting
 +
 
 +
=== Mod Updates ===
 +
 
 +
* Updated the Exotic Ships Mod:
 +
** Removed the part of the description from the Flameblade Light Frigate that, to reload, it needs to not be in stand-down mode as this is no longer true.
 +
** Improved the Support Launcher Frigate:
 +
*** The shield delivery capsules now always deploy a shield, even when getting destroyed by enemy fire.
 +
*** Fixed the shield delivery capsules not seeking out targets on their own, requiring constant micro-management.
 +
*** Doubled the radius of the shield from 1150 to 2300, and their base shield capacity from 100k to 200k, but now only one capsule is deployed every 30 seconds instead of 2. Additionally they now deploy at almost 4k range instead of just 1k, making them more useful for ranged attackers in the 2k-6k attack range bracket than for almost-melee ships only.
 +
**** Thanks to motai for giving feedback.
 +
 
 +
== 4.016 Necromantic Polish ==
 +
(Released April 11th, 2022)
 +
 
 +
* Add a necromancer journal entry explaining about taking over guard posts
 +
 
 +
* Modify some Showdown Device spawning logic
 +
 
 +
* Adjusted AI Wormhole Projector and the destabilized version to have more unique icons selected.
 +
 
 +
* Fix a fallen spire exception
 +
** Thanks to nas1m for reporting
 +
 
 +
* Fix a typo in the skeleton/wight/mummy amplifier description texts
 +
** Thanks to Strategic Sage for reporting
 +
 
 +
* A few beginner journals no longer fire for the necromancer
 +
** Thanks to Strategic Sage for reporting
 +
 
 +
* Igors are now the default utility pick for the Necromancer
 +
** Thanks to a discord discussion
 +
 
 +
* Fix a bug where loading ships into a flagship would  cause the necromancer tech menu to miscalculate things
 +
** Thanks to Daniexpert for reporting
 +
 
 +
* Necromancer Transformation hacks won't appear until you have unlocked some blueprints
 +
 
 +
* A Nanocausted Elderlings spawns at 50% health for balance reasons. Elderlings were too powerful in the Nanocaust's hands
 +
** Thanks to zeus for the balance feedback
 +
 
 +
* When the showdown battle begins, all guard posts now deploy their contents
 +
** Thanks to Strategic Sage for the report
 +
 
 +
* Fix a typo in the Debauched Venators
 +
** Thanks to Strategic Sage for reporting
 +
 
 +
* Fix a text error in the Transform Necromancer Flagship hack
 +
** Thanks to ptarth for reporting. Hopefully Thuvia is well
 +
 
 +
* Add a BonusInitialEncampments option to the Templar Difficulty to allow for spawning more Templar Initial Encampments; these are weaker and grant lots of resources to the player
 +
* Add an AdditionalFeebleElderlings option for Elderling Difficulty; this is intended to allow lower intensity Elderling factions to give extra resources to the player
 +
** Untested, for zeus
 +
 
 +
* Change the name/description of the StartWithAllUpgrades option for the necromancer
 +
** Thanks to a discussion on discord
 +
 
 +
* Add some clarification about how resources are given on unit death for necrocromancers
 +
** Thanks to ptarth for suggesting
 +
 
 +
* Add a new necromancer tip about clicking on the essence section of the resource bar to see how resources have been harvested
 +
 
 +
* Player ships will try not to target a ZA Castra if it is being hacked
 +
** Thanks to Lord of Nothing for reporting
 +
 
 +
* Remove any mention of Engine Stunning from the Black Widow Golem's description; the engine stun seems to have been removed at some point
 +
** Thanks to Ithuriel0 for reporting
 +
 
 +
* The Sapper and Sapper Home models are a bit larger.
 +
 
 +
* The Hack tooltip for a given Necromancer Upgrade now tells you how many times you have done this upgrade already
 +
 
 +
* The "Cannot be supercharged" and "Cannot be buffed" parts of the Ship Class tooltip are now properly formated into the Ship Class line.
 +
** Thanks to Incognito for reporting!
 +
 
 +
* Fixed a bug where the speed buff limit had an invisible +1000 added to base speed in code, and the XML for the sample base ship class now shows this XML field to remind everyone it exists and can be used.
 +
 
 +
* Fixed the formating for buff limits so that they now correctly show without disrupting everything behind them.
 +
 
 +
* The Corrosive damage tooltip on weapons doing it now explains what it does.
 +
** Thanks to StrategicSage for requesting. This was originally on the tooltip of a ship suffering this type of damage, but has no been moved to the weapon itself.
 +
 
 +
* Attrition, Electrotoxic, Revenge Shot (both percentual and fixed-damage-returning) and Ion damage now all have the same, color-coded info that these damage types are considered exotic damage.
 +
** Thanks to Mac for requesting.
 +
 
 +
* Engine Slows now are in the speed debuff category, instead of general debuffs.
 +
 
 +
* Flat speed buff capabilities for planetary buffs or debuffs:
 +
** Units can now have planetary speed "boosts" for allies and enemies that are <1 (but still >0).
 +
** Units can now have flat positive and negative speed boosts for allies and enemies, using the new XML fields allied_speed_flat_bonus, allied_speed_flat_bonus_added_per_mark, hostile_speed_flat_bonus and hostile_speed_flat_bonus_added_per_mark.
 +
** The game will throw an exception if a planetary multiplicative speed buff goes below 0.
 +
** Planetary damage and speed buffs are now cached, which means that they should never "flicker" when viewing tooltips or jerk ship movement.
 +
* Speed Caps are returning to the game after having been deleted without replacement. These only apply to the player, and get fixed to their defaults at Challenger or above. Combat ships can at most reach a speed of 3000, and non-combat ships 4500.
 +
 
 +
==== Necromancer Tip Reminders ====
 +
 
 +
* Every 5 minutes, if a Necromancer has not looked at any Tips in the sidebar, they get a prompt reminding them to look.
 +
** This reminder can be disabled with a setting under Game/Tips
 +
** This should make it harder for players to miss all the Tips that have a lot of gameplay instructions
 +
 
 +
* At the start of the game, the player gets a popup saying "The Necromancer is its own thing; change your expectations. And look at the Tips sidebar"
 +
** This reminder can be disabled with a setting under Game/Tips
 +
 
 +
== 4.015 The Thrifty Architrave ==
 +
(Released April 7th, 2022)
 +
 
 +
* Fix a bug where necromancer flagships could be incorrectly denied transformation
 +
** Thanks to Strategic Sage for reporting
 +
 
 +
* Fix a bug where necromancer-owned guard posts were inadvertently counted in the counterattack notification
 +
** Thanks to Strategic Sage for reporting
 +
 
 +
* The Mummy tech upgrade only appears if you have Mummies
 +
** Thanks to Strategic Sage for reporting
 +
 
 +
* Some tweaks to the necromancer journal, and remove the "Modify starting hacking/science/metal" fields for the necromancer
 +
** Thanks to Strategic Sage for reporting
 +
 
 +
* Fix a bug where the ZA was unable to make ships
 +
** Thanks to zeus for reporting
 +
 
 +
* Neinzul Youngling Fireflies now gain weapon points on firing their main weapon, and their on-death lightning blast now spends those points to deal increased damage.
 +
 
 +
* We no longer show a traditional X/Y cap in the unit hovertext for many necromancer units, since they don't use traditional caps
 +
** Thanks to Strategic Sage for reporting
 +
 
 +
* Fixed the credits for the DLCs being mangled and cut off in the last few builds.
 +
 
 +
=== Two New Mods ===
 +
 
 +
* New mod by... Chris!  Requires DLC3:
 +
** Paladin Transports Mod
 +
*** Allows you to change the basic colony-ship style transports to instead be a cool white paladin transport.
 +
*** This is a visual-only mod, so you can turn this on without other players needing to have it on in multiplayer.  This affects how ALL transports look in multiplayer, not just your own.  Other players will see the default colony ship visuals unless they also enable this mod, so it's purely a matter of personal taste for each player.
 +
*** The "paladin transport" visuals were a happy little accident that came about during DLC3's development, and we didn't know quite what to do with them at first.  Badger suggested this, which was a great idea, and here we are!
 +
 
 +
[[File:PaladinTransportMod.PNG|600px]]
 +
 
 +
* New mod "ExpertMinusScaling" by Donblas:
 +
** This mod modifies Expert mode to re-enable "Fleet Wide Bonuses", which are ships from Fleet Research Stations (FRS).
 +
** While re-enabling them does increase the players power in Expert mode, some find building fleets without them much less interesting.
 +
** Resulting games are "Expert-" in setting, more restricted than "Challenger" but less than a full "Expert" game.
 +
 
 +
== 4.014 The Intimidating Architrave ==
 +
(Released April 6th, 2022)
 +
 
 +
* The new AI eyes (dire and regular) in DLC3 now have a new style of visual that is distinct to DLC3.
 +
** This is finally now the end of the art for DLC3, for real!
 +
 
 +
* All of the Zenith Architrave units in DLC2 now have real graphics, and are much larger and more menacing.  This is now one of the more visually striking factions.
 +
** Thanks to everyone for their patience with the DLC2 art delays!  That is finally absolutely the last of it, so all of the art that is planned for the game is now complete!
 +
 
 +
* Add some defensive code for MP clients
 +
 
 +
* Remove some mentions of the sadly-deprecated Vassal code
 +
** Thanks to Strategic Sage for reporting
 +
 
 +
* Fix a typo in the neinzul migrant description
 +
** Thanks to Strategic Sage for reporting
 +
 
 +
* Add a bit more colour to the Module Popup
 +
 
 +
* Fix a typo in the roguelike 'swap planets' option description
 +
** Thanks to Mac for reporting
 +
 
 +
* Update the Enhanced Overlord description to explain some of its behaviour
 +
** Thanks to Mac for reporting
 +
 
 +
* Update the Challenger description for the base game to not mention Brutal Guardian Lairs (since those are DLC3 only)
 +
** Thanks to Strategic Sage for reporting
 +
 
 +
* Fix a typo in the Hugger golem description
 +
** Thanks to Ithuriel0 for the report
 +
 
 +
== 4.013 Hotfixes ==
 +
(Released April 6th, 2022)
 +
 
 +
* Fixed an exception on load in the prior build if you had DLC2 but not DLC3 enabled.
 +
** Thanks to Peter Ebbesen, Ithuriel0, and Smithal for reporting.
 +
 
 +
* Fixed an exception that could happen during loading certain quickstarts, or probably other lobby initialization situations as well.
 +
** Apparently also when generating maps in the lobby for some players!
 +
** Thanks to rem_tuas and Ithuriel0 for reporting.
 +
 
 +
* Fixed a typo in the Architrave Eques description.
 +
** Thanks to Ithuriel0 for reporting.
 +
 
 +
* Fixed an exception that could happen after hitting reset to defaults in the lobby now that it is checking for re-pooled game commands.  The game command in question was redundant and served no purpose at this point anyhow, happily.
 +
** Thanks to Badger for reporting.
 +
 
 +
* Adjusted Dire CPAs to no longer be forced on until Logistician mode, rather than being forced on in Expert mode.  They are still optional in any lower mode.
 +
** Thanks to Strategic Sage for suggesting, and for being patient with our second-guessing of him on it.
 +
 
 +
== 4.012 The Zeusathon ==
 +
(Released April 5th, 2022)
 +
 
 +
* The Hunter Fleet is capable of getting into a really funky situation where the minimum size for a fireteam to activate was an incredibly large number. I don't know why this happened, but I've put some code in to help it escape, and also left in some active debugging in the hopes that next time someone hits this we'll see what happened.
 +
** Thanks to Lord Of Nothing for reporting.
 +
 
 +
* The remaining Necromancer flagship art from DLC3 is now in place.
 +
 
 +
* The remaining DLC2 Dark Zenith placeholder art is now actually cool direct art.
 +
** Same for the remaining DLC2 scourge units.
 +
 
 +
=== DLC2 ===
 +
* Made the ZA much less likely to sideswipe the player during a civil war
 +
** Thanks to Lord of Nothing for reporting
 +
 
 +
* Fix a bug where the ZA weren't spawning their Golems
 +
 
 +
* Add some defensive code to the Border Aggression deepinfo
 +
 
 +
*Hoplomachus now cost the AI more, to be in range of Dire Guardians
 +
**Thanks to Lord Of Nothing to pointing this out!
 +
*Added a new scaling to the Architrave (applicable to guardian - Golem tier units). Damage peaks at x4.5 and health peaks at x6.5
 +
**This is a defensive faction so they now have a scaling to reflect this. Before, many of their units were using the guardian scaling, with is basically x10 to damage/health at Mark 7... this was way overkill
 +
*Added a new scaling to the Dark Zenith (applicable to guardian - Golem tier units). Damage peaks at x6.5 and health peaks at x4.5
 +
**This is an offensive faction so they now have a scaling to reflect this. Like the ZA, many of their units were using the guardian scaling so this is a nerf overall
 +
*Jormugandur now regenerates to full health, assuming 1 health remaining, faster, from 30 minutes to 10 minutes
 +
**This is the supreme DZ unit and needs to reliably be able to retreat and heal up
 +
*Reduced Bolas (ZA) and Harpoons (DZ) speed from 2,200 to 1,600
 +
**These should be dodgable by flagships, else these just shut you down to easily
 +
 
 +
=== DLC3 Balance ===
 +
*Increase interval frequency of Templar Waves and increased their base strength
 +
**Harder and more frequent Templar waves are also more reliable farming for science/hacking points
 +
*Templar units now grant much more science and hacking than they were previously
 +
**Strikecraft units from 2 science to 3 science
 +
**Guardian units from 6 science to 9 science
 +
**Encampments/Fortress/Castles from 5 hacking to 7 hacking. Science increased to 500 (for all)
 +
**Constructor grants 1000 science (from 500) and 25 hacking (from 10)
 +
*Reduced the number of drones produced by the Neinzul Nest/Cluster (For the Neinzul Enthusiast AI type). Also tripled health
 +
**This is more for performance reasons than anything else. They just flooded too many units
 +
*Zenith Architrave Castra now grants science/hacking to necromancer
 +
*Flagships obtainable from rifts need a min. mark of 2 to transform from 3
 +
**These are weaker than the Elderling Flagships so this change is to make them more appealing
 +
*Unyielding Flagship speed increased from 1,000 to 2,200 to match others
 +
*Rift Flagships now all have their modules. They were missing a tag
 +
 
 +
=== Mod Updates ===
 +
 
 +
*AI Shield Generators mod
 +
**Updated the xml to make Shield Generators unable to be captured. This was always intended to be the case but was missed from the xml for the new version of the mod.
 +
**Changed the Shield Generator and Core Shield icons to take advantage of the new icons (They are now using Ships3/SomethingTurtleShield).
 +
**Core Shields are no longer shown on the Galaxy Map. The player already knows where they are and they cannot move, so they were just adding unnecessary clutter. Shield Generators are still shown as normal.
 +
 
 +
== 4.011 Multiplayer Stability ==
 +
(Released April 4th, 2022)
 +
 
 +
* Update the City Mechanics journal for the spire to mention some building restrictions
 +
** Suggested by Peter Ebbesen
 +
 
 +
* The DLC3 factions now all have icons in the game lobby
 +
 
 +
* Added new force_gravity_well_size_of_planet_to_be_at_least and force_gravity_well_size_of_planet_to_be_at_most features, which allow a unit to force the gravity well to be within a certain size range.  If it is shrinking the gravity well, then it scoots all the wormholes and ships inward at the percentage they were from the older larger size.
 +
** This is now used by the Templar Sovereign to make sure that the planet it is on always is in a certain size range so that its orbitals are neither way out of the grav well, nor way into the grav well in a way that defeats their purpose.
 +
** Thanks to zeus for sort of requesting.
 +
 
 +
* After discussion on mantis, two of the AI types have had their difficulty reclassified.  Swarmer has been demoted to Hard (they are on the border between Brutal and Hard), and Spire Hammer has been promoted to Brutal (they again are on that same border).
 +
** Nothing is changed with these AI types in their actual function or balance, but it was agreed that these labels represent them better.
 +
** Thanks to Ecthelon, CRCGamer, Lord Of Nothing, and Strategic Sage for the discussion.
 +
 
 +
* The mark level of each spire city is now shown, in proper color, at the end of its name now.
 +
** This makes it way easier for people to find their more important cities, especially if they're coming into an unfamiliar save.
 +
 
 +
=== Bugfixes ===
 +
 
 +
* Fixed an issue with sliders where tooltips could be placed over top of the number to the right of them.
 +
** Thanks to Glyoxim for reporting.
 +
 
 +
* At last, seem to have fixed a general multiplayer error that was initially having clients get "corrupted seeming" game commands, but really was a matter of those having been partly put back in the pool already.  Essentially this was a client-only threading issue, and related to how we used a pair of rotating queues.
 +
** Instead of using a pair of rotating queues, it now uses a single queue, and then a feeder working list, and this dodges the timing issues entirely (and is just as efficient).
 +
** This particular bug was what was causing the flood of errors on some MP clients some of the time recently (the flood of errors was actually good, because it meant that we were finding out about the issue rather than executing malformed gamecommands).
 +
** Apparently this could also lead to a rare nullref in single player.
 +
** Also this could cause one in the lobby reset to defaults, wow.
 +
** Thanks to ptarth, Cyborg, xaid, Badgerm, Lord of Nothing, and Eluthena for reporting.
 +
 
 +
* Fixed an issue where Expatriate tech and similar would not be applied to allied factions until you paused the game.
 +
** Thanks to Incognito and LordNSR for reporting.
 +
 
 +
* Fixed threading errors that could happen in PrepareConflictPlanetMovementLogic.
 +
** Thanks to gekko for reporting.
 +
 
 +
* Fixed what was apparently a super rare exception that could happen inside our forcefield rippler code.
 +
** Thanks to habakuk for reporting.
 +
 
 +
* Fixed a number of places in the code that were calling a non-threadsafe for-ui-only method on fleets, which has been renamed to be even more clear it should never be called except from the UI.
 +
** Also hardened that code a bit for threading errors just in case.
 +
** The alternative code, which is what was supposed to be called, now is -- and that's much higher-performance code in general, so makes a few parts of the sim, autobuild, and otherwise all faster.
 +
** Thanks to habakuk and slake-moth for reporting.
 +
 
 +
* Fixed an exception that could happen in PrivateNomadPlanetNotifier.
 +
** Thanks to Dismiss for reporting.
 +
 
 +
* Fixed an error popup that could happen when you exited from the lobby during a mapgen process (either if your timing was just wrong, or you hit the escape key really quickly after loading in).
 +
** Thanks to Dismiss and Eluthena for reporting.
 +
 
 +
* Fixed a bug where icons under planets in the galaxy map were not drawn after reloading a save, or a similar save from the same campaign, more times.
 +
** Thanks to slake-moth and Daniexpert for reporting and to Daniexpert for the major debugging to find it.
 +
 
 +
* Added a new feature where certain NPC ship caps can be told to no longer show visible warnings to players.  The cap still serves a purpose, as it causes stacking and condenses units around, etc, but it won't warn the player that something is "wrong."
 +
** This should be used sparingly, mainly for categories where we really don't consider it wrong at all, but just would like to have a soft cap that causes things to condense as they can.
 +
** Most notably, this is used for the drones category now.
 +
** Thanks to Lictuel for the most recent report.* Added a new feature where certain NPC ship caps can be told to no longer show visible warnings to players.  The cap still serves a purpose, as it causes stacking and condenses units around, etc, but it won't warn the player that something is "wrong."
 +
** This should be used sparingly, mainly for categories where we really don't consider it wrong at all, but just would like to have a soft cap that causes things to condense as they can.
 +
** Most notably, this is used for the drones category now.
 +
** Thanks to Lictuel, Detlef, and henry700 for the most recent reports.
 +
 
 +
* 18 different quickstarts have been updated to have the proper factions that they were supposed to have, after their initial setups had been messed up a bit.
 +
** Big thanks to gekko for going to all that trouble and also getting those all fixed!
 +
 
 +
* We already had a dies_if_parent_dies tag in DLC3, but now we also have dies_if_parent_is_dead_or_remains.
 +
** This is applied to all of the various necromancer orbs, and if their ancestor has been turned to remains (rather than outright death), then the orbs also still die.  Tested and works.
 +
** Thanks to Daniexpert for the initial report and save, and to zeus for the new feature request.
 +
 
 +
* If a player's king is missing, it no longer throws errors when evaluating if journal entries should be logged.
 +
 
 +
* Fixed a frankly insane bit of VERY old code (it was mine) that would delete fleets that were missing their centerpieces for whatever reason.
 +
** This could lead, in some super rare cases, to the centerpiece for an ark empire not being found, and it then just deleting your king unit and all the related units in its fleet.
 +
** Additionally, fixed a related bug where it home arks were the one kind of centerpiece that could not self-repair when their fleet had lost a reference to them.
 +
** Thanks to Glyoxim for reporting.
 +
 
 +
* The warden is no longer allowed to path through it's Target planet to get to its Lurk planet
 +
** This was causing the warden to just trickle into a fight where it could be dispatched piecemeal; this was a regression caused by some changes to make the warden have more "friction" wit the player. Ordinarily more friction is fine, but it shouldn't be quite so oblivious
 +
*** Thanks to Dismiss for the bug report
 +
 
 +
* Fixed an issue where traditional-style ship cap scaling was being applied against the fallen spire city buildings when it should not have been, thus leading to inflated counts.
 +
** Thanks to Lord Of Nothing for reporting.
 +
 
 +
* No units have displaces_other_ships_giant_tier anymore.
 +
** This mechanic tends to make ships invulnerable to short-range units, which is really frustrating for pretty much anything.  This was an interesting experiment, but didn't pan out.
 +
** Thanks to Daniexpert and Zer0h1nder for reporting.
 +
 
 +
* Exo strikes are no longer ever able to show negative percentages complete.
 +
** This was happening when they were syncing with CPAs or wormhole invasions, and waiting for something like that.
 +
** Now when it's going to sync like that, it just waits at 0% charged for a long while, and then starts counting up once the sync is ready.
 +
** Thanks to GreatYng, Daniexpert, henry700, and samnainocard for reporting.
 +
 
 +
== 4.010 Iconucopia ==
 +
(Released April 3rd, 2022)
 +
 
 +
=== Icons ===
 +
 
 +
* All of the remaining icons and overlays for DLC3 have been created and added in.
 +
 
 +
* Overlays for all ten arks (from the base game and DLC1) are now in place, making it possible to differentiate them while still keeping their central icon.
 +
** Thanks to Badger for suggesting.
 +
 
 +
* A whopping 357 new icons for modders have been added to Ships3 and Ships4.  These all start with Emblem[X] or Something[X].
 +
** This is more than the total number of icons in the base game and any single DLC, so this is a pretty huge boon for modders going forward.
 +
 
 +
=== Balance ===
 +
 
 +
* It was noted in the Discord that while Persuaders are indeed more durable than Parasites their cost per ship hadn't properly been increased in a previous patch that cut the line counts. And they had a text description about being expensive.
 +
** Persuader metal and energy costs per ship are now set to be four times higher than previous values.
 +
 
 +
=== DLC 1 ===
 +
 
 +
* Spire Debris from the Spire Infused Empire  can no longer be scrapped
 +
** Thanks to Lord Of Nothing for reporting
 +
 
 +
=== DLC 3 ===
 +
*Added a new starter fleet -- the "Warded Fleet"
 +
**Features the Repulsor ward, along with the Samurai Frigate, Corrosive Frigate, and Mosquito Corvette
 +
*Galactic Control Ships (Triggered by Showdown Device) now emulate Classic by ravaging planets on death
 +
**diff 1-4 no ravage
 +
**diff 5-6 ravage planet
 +
**diff 7-10 ravage planet and adjacet planets
 +
*Necromancer Flagships now have Modules! Up to 9 options:
 +
**Enhanced Hull: 2 points -- 50% more hull
 +
**Enhanced Shields: 2 points -- 50% more shields
 +
**Forcefield: 4 points -- Gains bubbleshield
 +
**Tractor Beams: 2 points -- Gains Tractors, increasing with Mark
 +
**Gravitic Core: 4 Points -- Gains large radius gravity effect, slowing units by 30%
 +
**Decloaking: 1 point -- Gains Decloaker
 +
**Cloaking: 4 points -- Gains Cloaking
 +
**Anti-Shield Plasma Bolt: 3 points -- Gains weapons the excels at killing bubbleshields
 +
**Fusion Bomb: 3 points -- Gains anti-massive weapon that bypasses shields
 +
*Necromancer Necropolis/Phylactery now have modules! (Known bug with the module button not appearing)
 +
**Enhanced Hull: 2 points -- 50% more hull
 +
**Enhanced Shields: 2 points -- 50% more shields
 +
**Forcefield: 4 points -- Gains bubbleshield
 +
**Gravitic Core: 4 Points -- Gains large radius gravity effect, slowing units by 30%
 +
**Rail Cannon: 1 point -- Sniper weapon with increase salvos per mark
 +
**Repulsor Rocket: 1 point -- Knockback rockets that do bonus damage to ships immune to knockback.
 +
**Summon: Caged Skeletons (Drone Gun): 3 points
 +
**Summon: Mummy Minions (Drone Gun): 5 points
 +
**Summon: Bone Dragon (Drone Gun): 7 points
 +
***Necropolis/Phylactery Modules that summon stuff now have a min. mark to function
 +
*Increased the essence cost of upgrading Necromancer units
 +
**This is mostly targeted at Mark 4+. In the late game, there's a lot more Essence to harvest
 +
*Removed AIP penalty from the Neinzul Nest and Neinzul Cluster
 +
**Player ships will automatically attack these so this needs to be removed
 +
***Necropolis/Phylactery base stats reduced to compensate for modules
 +
*Increased the bodyguard count of skeletons and wights
 +
*Increased the cap size for rift hacks (e.g., increase Fleet X's max cap of ravenous wights from 4 to 12)
 +
*  If the Necromancer is not present for a unit kill that would grant resources to the necromancer, if the kill was done by a non-Necromancer human the necromancer gets 30% of the resources they would have gotten; If the kill was done by an NPC ally, the necroancer gets 75% resources (in either case you get any Upgrades you would, like from a transformed elderling).
 +
** Thanks to Dragoris for reporting
 +
 +
* Tidy some Sappers code a bit; fix a typo when calculating beachhead structure limits. Add some debugging code for showdown seeding
 +
** Big thanks to Puffin for the observation!
 +
 
 +
* Encampments and Fastnesses now need to go up to mark 7 before they change form
 +
** Thanks to zeus for noticing
 +
 
 +
* The necromancer's 'transform flagship' hack now has better UI
 +
 
 +
* Fix a bug where we were could transform the wrong necromancer flagship
 +
** Thanks to Keith C. for reporting
 +
 
 +
* Necropolises/Phylacteries now have a 'Spend Modules' button in the fleet menu
 +
** Thanks to Zeus for reporting
 +
 
 +
=== Bugfixes ===
 +
 
 +
* Removed an old text reference to reduced damage for units firing from under forcefields from the Siphoner Frigate. As it inherits properties from the base Forcefield Frigate this hasn't been true for a long time.
 +
 
 +
* Fix a bug where the Border Aggression budget was never being reset to 0 after launching an attack; the budget was purely cumulative over time. This would lead to really huge border aggression assaults in long games.
 +
** Thanks to Velius for reporting.
 +
 
 +
* Add some debugging code to help diagnose a rare exception in the Build menu.
 +
** Thanks to habakkuk for reporting.
 +
 
 +
* Improve the description for the Orchid Ark.
 +
** Thanks to Glyoxim for reporting.
 +
 
 +
* The game no longer plays "forces in combat" voice lines when the game is paused.
 +
** Thanks to Ithuriel0 for reporting.
 +
 
 +
* Fix a typo in the "Using Nukes/EMP is considered cheating" descriptions.
 +
** Thanks to cml for reporting.
 +
 
 +
* The tooltip for hacks on planets controlled by hostile minor factions now correctly reflects the fact that it is considered a "hostile planet".
 +
** Thanks to motai for reporting.
 +
 
 +
* Add some defensive code to ClearPlanetLooseStuffAndSpecialEffects().
 +
** Thanks to slake-moth for reporting.
 +
 
 +
* Add some debugging code to DoOnDestructionLogic for MP client problems.
 +
** Thanks to Alivaril for reporting.
 +
 
 +
* Add an Advanced setting to the Autosave category to create a 'campaign start' save. The goal is to make it easier to make quickstarts.
 +
** Thanks to trabbo for suggesting.
 +
 
 +
* Fix some typos on ethereal cruiser description and some unit hovertexts.
 +
** Thanks to Zer0h1nder for reporting.
 +
 
 +
* Padded a potential out-of-range exception in the autobuilding code.
 +
** Thanks to habakuk for reporting.
 +
* While testing, found and fixed a bug where autobuilding counts from a previous entity type could transfer over to the current setting (i.e. if the player only has 5 tritium sniper turrets, but 10 spider turrets, then the code would built only 5 of each and live the remaining 5 spider turrets unbuilt).
 +
 
 +
* Entities with weapons will now reload even while in hold-fire mode. This ensures that their weapons are fully ready when they are allowed to attack again.
 +
** From a conversation with Ithuriel and Dismiss on Discord.
 +
 
 +
* Add a 'wait for stragglers' variant that works on all planets, not just friendly planets.
 +
** Thanks to ToastTheSniper for reporting.
 +
 
 +
* Fixed a small XML typo that caused the CivilAuthorityRepaymentMultiplier to default to 1x when the campaign was set to Expert+.
 +
** Thanks to Peter Ebbesen for reporting.
 +
 
 +
* Fixed an error with xml inheritance that could happen with certain kinds of ship setups.
 +
 
 +
* Fixed a typo with Civilian Authorities Total Metal counts that made those appear 10x greater than what they actually were.
 +
** Thanks to Lord Of Nothing for reporting.
 +
 
 +
* Savegames should again load properly.
 +
** Thanks to Lord of Nothing for the report, and CRCGamer for the fix.
 +
 
 +
=== Mod Returns: Core Shield Generators, by cml ===
 +
 
 +
*Updated AI Shield Generators mod.
 +
**The new version of the mod functions differently to the old version. Rather than adding a faction for each Shield Generator network, each AI faction has options which allow for up to three networks to be created.
 +
 
 +
== 4.009 Architrave Taming ==
 +
(Released March 31st, 2022)
 +
 
 +
* The ZA can only build defensive structures once every 10 seconds
 +
** Thanks to Dismiss for suggesting
 +
*Description updates to the Ultimate Fortress (and Towers), and more recognizable overlay. Now shows up on the galaxy map
 +
 
 +
=== DLC3 ===
 +
* Fix a typo on the necromancer resources journal
 +
** Thanks to vinco for reporting
 +
 
 +
* Fix a bug where you could do necropolis movement hacks even w/o enough essence
 +
** Thanks to zeus for reporting
 +
*Templar scaling reduced so they peak less than default scaling
 +
**Templar eventually (in the late game) are pretty much sending only mark 7 units so these are tuned down so a late game necromancer fleet will compete
 +
*Reduced the orbital speed of the Treacherous Totem's orbs, so enemies don't chase them endlessly
 +
*Adjustments to Templar hacking/science bounty
 +
*Adjustments to AI structures hacking bounty
 +
**Generally, nasty picks give more than they were before so they are more impactful
 +
*Tweaks to Wave Leaders stats to compensate for the new scaling
 +
*New (temporary?) icon for the sovereign. Looks pretty cool but possibly used elsewhere (Shipgroups4/SomethingNeinzul3)
 +
 
 +
* Added another 48sih pieces of art, which pretty much completes the non-icon portions of the DLC3 art.
 +
** We are still using some duplicate graphics for some of the necromancer flagship variants, but everything else is done!
 +
 
 +
=== Balance ===
 +
 
 +
* Corrected a number of issues with AI Spire ship assets. This is part of DLC1 that gets used by some AI types in DLC2. Most notably Spire Hammer and Jabberwock.
 +
** Practically every AI version still referenced the original ship instead of the non-modular xBase versions put in place when modules were deployed to player versions of the ships.
 +
** Several missing beam weapon color attributes were found and corrected. Previously slid under the radar because they were inheriting from the player versions.
 +
** AI Spire Dreadnought now correctly just has a couple big bad coilbeams that only fire once per cycle instead of one of them being a Rube Goldberg monstrosity firing twenty coilbeams once a second.
 +
 
 +
* Fixed an issue with the AI Ultimate Fortress spawning one of its sub-units every three seconds instead of once every thirty minutes.
 +
 
 +
* Upped the seed weight of the Black Widow golem. It was originally massively reduced since it always had a chance of showing up in early officer spawns. But with those spawns being locked behind lower difficulty AIs having it about seven times rarer than a Regenerator golem was uncalled for.
 +
 
 +
=== Mod Updates ===
 +
 
 +
* Update for More System Defenders:
 +
** Most of the added guardian units had their AI purchase prices revised upwards.
 +
** AI Artillery Destroyer has had its hull health raised to be four times higher than previous.
 +
** AI Artillery Destroyer also has had its main gun base damage cut by about 20%
 +
*** The fact a blob of them at mark 7 had an alpha damage of one million versus ships of frigate size or larger per ship the AI sent out was leading to some interesting "vanishing" of entire Spire fleets. The AI purchase price being raised as well should lead to these taking a little longer to kill individually but coming in numbers only about 2/3 as much as previously.
 +
 
 +
== 4.008 Exogalactic Wayfinding ==
 +
(Released March 25th, 2022)
 +
 
 +
=== DLC3 ===
 +
*Vengeful Wight copies (the bodyguard and the revived) now use the vengeful wight base unit instead of the spectral wight
 +
*Defensive Necropolis no longer buffs damage
 +
**These will get modules instead
 +
*Templar Seneschal single target paralysis now hits mass less than 7tx instead of 8tx
 +
**These were just too obnoxious when paralyzing your flagships and bone dragons.
 +
 
 +
* Fix a bug with the tooltip for some Maddened Elderlings
 +
** Thanks to zeus for reporting
 +
*Added a "corrosive finale" to the Corrosive Guardian/Guardpost. When these units die, they do one last AOE blast centered on itself to spray corrosive damage. Adjusted these both to specialize against low armor units
 +
*Added orbital versions of the Corrosive Guardpost
 +
*Plagueswarm Elderling/Flagship (and their children) now do corrosive damage (DOT)
 +
*Remade the Chain Lightning Frigate into the Corrosive Frigate
 +
**Needed to have this new weapon mechanic show up for normal human games and this splash frigate was the logical choice
 +
*Increased hacking bounty from Templar Structures
 +
**Noticed my hacking points were actually overly limited! No more drowning in hacking points, so increased the value of these
 +
*Templar Sovereign now takes 45 minutes to build a Runed castles (instead of 2 seconds)
 +
**Forgot to change this back after testing this mechanic
 +
*Increased the Skeleton/Wight/Mummy amplifier to have a bonus chance to create another one to 35/25/15 (from 10/10/10)
 +
**These amplifiers were just not that enticing at a mere 10%
 +
*Bone Dragons C.Lightning now hits all mobile ships instead of only strikecraft and frigates
 +
*Weak Skeletons harmonic max damage cap reduced by half
 +
 
 +
* Another huge batch of DLC3 art is now completed and integrated.  In all it's about 70 pieces.
 +
** All of the remaining Templar units are in place (except the hospitaller, which is temporarily using another ship's graphics).
 +
** All of the venator untis are in.
 +
** The migrant wormhole.
 +
** Showdown device.
 +
** All of the brutal guardians and their related devices, etc.
 +
** All of the destroyers.
 +
** All of the new strikecraft and frigates.
 +
** All of the new AI nasty picks.
 +
** In general there are still 107 items to do, 59 of which are for DLC3.  So this was a solid 40% or so of the remaining work for all this!  (These numbers don't quite match yesterday because some things got added).
 +
 
 +
=== Bugfixes ===
 +
 
 +
* Fixed a bug where Exogalactic War Units would wind up getting diverted to the wrong targets
 +
** Thanks to a number of people for reporting, most recently Lord Of Nothing
 +
 
 +
* Hunter Fleet ships are less likely to attack ZA Core Territory unless they have specific orders to do so
 +
 
 +
* Adjust some zenith miner tooltips
 +
** Thanks to henry700 for reporting
 +
 
 +
* Remove a few mentions of the now-deprecated Lone Wolf concept
 +
** Thanks to habakuk for reporting
 +
 
 +
* Remove a restriction that prevented the player from moving a miner probe onto a player-owned planet. This allows players to shoot themselves in the foot (or grief eachother during MP)
 +
** Thanks to Zer0h1nder for reporting
 +
 
 +
* Fixed a bug where a wave would spawn on its home world instead of the expected planet.
 +
** This could happen only in games with 2 or more AIs. In more detail, when a wave from one AI was planned to spawn on another AI's planet, it would fail a check to find such planet and therefore default to spawning on its home world.
 +
** Thanks to Velius for the report and the saves.
 +
 
 +
== 4.007 Balance And Tuning ==
 +
(Released March 24th, 2022)
 +
 
 +
* Added a new LogChanges bool to our List<> class, with a related string ListNameForLogChanges field.
 +
** This can be set to true on a given list in the codebase, and then it will spit out any and all changes that happen to it, with full stack traces, so you can figure out why your list is changing and from where it is being changed.
 +
** This is very heavy, so should probably only be used on a list or two at a time, and of course only in code during a debug mode.
 +
 
 +
* Lots of DLC3 art has been completed!  57 pieces in all.
 +
** This completes all of the "wards," and almost the remainder of the necromancer units (there are still a few flagships left for them).
 +
** There are still 162 pieces for me left to do, 47 of which are are for DLC2, and then 183 remaining icons for DLC3.  So this was a solid chunk, but there's more to come very soon.  It's getting time to make a trailer and screenshots, etc.  And release is only a month or so off now!
 +
 
 +
=== Balance ===
 +
 
 +
* Way back in 3.776 Raiders were supposedly updated to 20 engine power to make them black hole immune. Well turns out they as a group were still sitting at 18 gX. Instead the lowly Stingray which isn't even a Raid type unit got the buff.
 +
** Raiders and variants actually buffed to 20 gX engine power.
 +
** Stingray and variants restored to 14 gX engine power where you can actually CC them.
 +
 
 +
* Due to newer player confusion with descriptive text the Shieldwall Battlestation mark scaling damage resistance has been revoked. Instead it has been given a custom stat scaling entry and has its shields eventually hit 6x base XML value at mark seven. Effective health is essentially unchanged.
 +
** Shieldwall mark 7 max shield health: 5m -> 7.5m
 +
** Damage resistance: 10-34% -> 0%
 +
 
 +
* Previous lone wolf officers not having a weapon timer on loaded ships now corrected. Lone Spire Frigates and a few golems now properly enforce six second weapon safeties.
 +
 
 +
* Ultimate Fortress update
 +
** Fixed a broken tag with the Ultimate Fortress so it can now properly spawn the Sabot Tower variant
 +
** Reduced the orbital speed of the Towers so players can actually focus fire Towers down one at a time
 +
 
 +
* (DLC2) Swapped targeting logic for player version of Raijin Golem Chain Lightning weapon from only targeting strike and frigates to only targeting mobile units. Guardians are now on the menu.
 +
 
 +
=== DLC 1 ===
 +
* Changed behaviour when hacking for Spire Debris. Now when hacking a debris, its countdown will be paused for the duration of the hack and will resume if the hack gets cancelled.
 +
** Thanks to Ecthelon for the report.
 +
 
 +
=== DLC 3: Necromancer ===
 +
*Adjusted the ship caps of the Necromancer's defensive structures so there's no more scenarios of having a larger cap of a defense structure compared to the available hexes
 +
**Cap sizes of defensive structures have been adjusted accordingly, but not uniformly.
 +
*Necromancer's Lightning Tower now does paralysis. 1 sec per mark (max 7 sec) to ships with mass <= 2tx. They also start with a cap of 5 to make use of their harmonic bonus sooner.
 +
**Also increased range by about 20%
 +
*Minor buff to the Necromancer Shipyard. This now has a flat cap on 1 per necropolis
 +
**Getting more of these is a trap, so this cap is now 1. But it's still a good value on planets where you need to reinforce your fleets
 +
*Fixed a copy/paste issue where certain Elderlings (the Envious and Blasphemous) were transforming into the wrong sacrificial form, preventing players from getting the unique flagship transformation
 +
**Thanks to Daniexpert for the save
 +
*Skeleton Lord home  nerfs:
 +
**has lower chance of creating a lord. From 5% to 2% (per home).
 +
***Unlike other skeleton homes, you get 3 of these per rift (but need a mark3 necropolis/phylactery to build). You could end up getting far more lords if you specialize, to the point this was too strong
 +
**Reduced the bodyguard cap from 3 to 2
 +
**No longer gives a small chance of creating a free skeleton--this is the feature of the amplifiers and is too opaque when added here
 +
*Increased the cost of Essence to upgrade flagships and Necropolis
 +
**There is much more essence now with the Elderling change, so this was needed
 +
*Dramatic increase to science upgrades for all necromancer techs
 +
**There's just too much science in Necromancer games. Tech should be interesting decisions, not just "get everything"
 +
 
 +
* The Templar now spawn their Sovereign
 +
 
 +
* Fix a reference to the now deprecated skeleton detonator
 +
 
 +
* I've added a new field for the XML templar difficulty HackingPointsSpentPerBonusWaveLeaderFromHack
 +
** This defaults to 100, and allows the strength of hacking responses to be tuned via XML.
 +
** Wave Leaders from a hack response are determined by AIP and hacking points spent
 +
 
 +
* Only low tier wave leaders can spawn from an Encampment
 +
* Only low/mid tier wave leaders can spawn from a Fastness
 +
 
 +
*  The number of templar wave leaders from a hacking response is now more tunable (the hacking points spent component can be tuned via XML).
 +
* Add scaffolding for spawning different units from a hacking response, though this is waiting for zeus to do a bit of XML
 +
 
 +
* When a templar unit is spawned, it uses the following additional rules when choosing its mark level
 +
**  MinUnitMarkLevelLowTier = 1; //encampments
 +
**  MaxUnitMarkLevelLowTier = 3;
 +
**  MinUnitMarkLevelMidTier = 3; //fastnesses
 +
**  MaxUnitMarkLevelMidTier = 5;
 +
**  MinUnitMarkLevelHighTier = 3; //castles
 +
**  MaxUnitMarkLevelHighTier = 7;
 +
*** These are the default values, but they can be tuned in the TemplarDifficulty XML (so MaxUnitMarkLevelHighTier could be 5 on low difficulties)
 +
 
 +
* Showdown Devices now play nicely with the Necromancer
 +
 
 +
* The Wave Leaders from a hacking response wave are now the new variants from zeus
 +
 
 +
=== DLC 3: Elderling ===
 +
*Decadent Elderling/Flagship now hit 10 units with Devour, up from 1
 +
*Lowered number of Elderlings needed to trigger madness across intensities.
 +
**Still experimenting around, but these changes should definitely make madness happen regularly
 +
*Essence granted from Elderlings has a reworked scaling so that the value no longer goes down after an evolution. The next tier of Elderlings will now continue where the previous (mark 7) Elderling left off
 +
**Low Tier: 3 / +2
 +
**Mid Tier: 15 / +2
 +
**High Tier: 27 / +2
 +
**Will watch to see how much Essence player now has access to. Will likely need to balance this by increasing costs associated with Essence
 +
*Adjustments to Elderling intensity settings, including reduction of time low tier Elderlings need to level up
 +
 
 +
=== DLC 3: Templar ===
 +
*Adjustments to the Templar intensity settings
 +
*Templars now have their own mark scaling.
 +
*Templar Wave Leaders had stats reworked so they can scale with mark level
 +
*Made the evolution of Templar structures more straightforward. Encampment->Fastness->Castle (This is the same). With each evolution, the structure gets an additional weapon. So the Castle has all the weapons of the Fastness/Encampment along with a new weapon
 +
*Templar Herald adjustments reduced science/hacking bounty by half
 +
*Templar Prophet reduced science/hacking bounty by half
 +
*Templar Harbinger adjustments Reduced science/hacking bounty by half
 +
*Templar castles now take longer to upgrade across all intensities
 +
 
 +
=== Bugfixes ===
 +
 
 +
* Reduced Dyson Sphere's selection circle size to improve user experience.
 +
** Thanks to Eluthena for the suggestion.
 +
 
 +
* Fixed a race condition in Splintering Spire that could cause all dismantling timers to reset when loading a save
 +
** For future notes for both myself and modders, Stage 2 logic is not guaranteed to wait until all deserialization is completed before running
 +
*** Thanks to Lord Of Nothing for the report
 +
 
 +
* Fixed a bug that didn't allow the player to change music from the debug menu.
 +
** Thanks to Democracy for the report.
 +
 
 +
* Fixed a bug that allowed players to discover centerpieces hidden in unexplored planets.
 +
** Thanks to Eluthena for reporting.
 +
 
 +
* Disabled navigation to unexplored planets via wormholes when the "Hide Unexplored Planets" setting is enabled.
 +
** Thanks to Eluthena and Sounds for the report.
 +
 
 +
* Fixed the tracing and memory leak with the ArcenCharacterBuffers in AIRelentlessAndBorderAggressionFactionDeepInfoRoot that caused an error spam when using RelentlessWave tracing.
 +
 
 +
* Fix some bugs with the intel menu showing incorrect data for the superterminal, and too many MDC objectives
 +
** Thanks to Lord Of Nothing for reporting
 +
 
 +
* Minor tweaks to Wait For Stragglers mode; it no should no longer wait for Drones or the like
 +
** Thanks to Jason Nelson for reporting
 +
 
 +
== 4.006 Careful Of That Federation! ==
 +
(Released March 16th, 2022)
 +
 
 +
* If a scourge nemesis finds itself in a Defensive Fireteam, the fireteam will now disband so the nemesis can be used on offense.
 +
 
 +
* The Gyrn, Voidhome Ark Empire version of that ark now generates 750k energy rather than the usual 350k that other arks do.  This is part of its identity as an ark.
 +
** Thanks to Zer0h1nder for suggesting.
 +
 
 +
* Remove the 3 AIP penalty for losing fuel stations
 +
** At Sage's request
 +
 
 +
* The Placement Condition framework has been overhauled to be more condensed and moder, and the Multiple-Point variant is pooled to counter memory leaks.
 +
 
 +
* Added in a new utility function to Factions, GetIsFriendlyToAnyPlayerFaction, which does what it says on the tin.
 +
** GetIsHostileToAnyPlayerFaction and GetIsNeutralToAnyPlayerFaction are also implemented, but are not actively used yet. Modder fodder.
 +
** GetIsFriendlyToAnyPlayerFaction is now used to determine what factions should be considered for the Friendly to Players extragalactic budget, where previously it was based purely on Allegiance.
 +
*** This should help resolve some issues players have had with Extragalactic units sitting around instead of hunting down the player. This will not retroactively fix any 'broken' Extragalactic ships, so you still have the joy of dealing with them.
 +
**** Thanks to Lord Of Nothing, and henry700 for the latest report and saves used to test this
 +
 
 +
* Updated the recommended settings for fuel tips section with Strategic Sage's latest.
 +
** Thanks to Strategic Sage for writing and adding.
 +
 
 +
* Added some clarification notes to the Dyson Sphere hacking file
 +
** Thanks to Puffin for noticing now unclear it was
 +
 
 +
=== DLC1 ===
 +
 
 +
* Ark Empires now get to pick what planet they get for free at game start, instead of simply having the planet they spawn on have no AIP cost
 +
** To further give value to this, they gain two scouting pulses at game start, allowing them to see further before picking
 +
*** Thanks to Zer0h1nder for the notice that this should be more fleshed out
 +
 
 +
* Modified the Dark Spire's response to being dismantled by the Splintering Spire
 +
** Interval response (every 30 seconds) reduced to 10% of prior value, Final response (when VG is destroyed) increased to 200% of prior value
 +
*** Thanks to Lord Of Nothing for reporting how overwhelming their response could get
 +
 
 +
=== DLC2 ===
 +
 
 +
* Architrave now now allowed to expand onto planets near mobile kings, IF its their only option. They will still steer clear of any stationary kings
 +
** Thanks to Zer0h1nder for the report
 +
 
 +
=== Bugfixes ===
 +
 
 +
* Fixed a bug where the Splintering Spire had tracing enabled at all times
 +
** Thanks to Zer0h1nder for the report
 +
 
 +
* Fixed a bug where Dark Spire weren't regenerating their conquest targets list, leading to them putting Loci onto the same planets
 +
** Will not retroactively remove any, but they will no longer build more than 1 per planet
 +
*** Thanks to a number of people for helping to narrow this down
 +
 
 +
* Fixed a bug where seconds_to_fully_regenerate_hull was not correctly functioning
 +
** Thanks to Velius and Exlium for reporting that the Retribution Golem was broken, which lead to the overall discovery
 +
 
 +
* Fixed a bug where units targeting Dyson/Spire Spheres wouldn't actually try to attack
 +
** Thanks to Lord Of Nothing, and henry700 for the latest report and saves used to test this
 +
 
 +
* Fixed an issue where Splintering Spire Fireteams would forget what they were doing when loading a save
 +
** Thanks to Lord Of Nothing for the report
 +
 
 +
* The grace period for not incurring a brownout with negative energy no longer counts upward while the game is paused.  It wasn't a bug per se that it did before, but it was sure confusing and probably not ideal.
 +
** Thanks to samnainocard for reporting.
 +
 
 +
* At the end of the game, the fleet of yours that is commended is whatever is the strongest one.
 +
 
 +
* Fixed an issue where in Challenger mode you would be given a random second battlestation, rather than being able to choose your own.
 +
** Thanks to Jason Nelson for reporting.
 +
 
 +
* The messages about experimental ship stats when right-clicking metal in the resource bar have been removed.  That was a feature for a while, but was removed during the refactor and is not planned to return.
 +
 
 +
* SafeTryRemoveAt and SafeTryGet and SafeTrySet have been added to our custom version of the List<> class.
 +
 
 +
* Added our own copy of the Interlocked class, which ultimately just wrappers the other one because of extern methods that we couldn't bring in in the way I originally wanted.
 +
 
 +
* Added SafeTryAdd to our List implementation, which in turn uses a bit of extra CPU to try to avoid issues when several threads are messing with it at once.
 +
** This is a less-efficient method, and should only be used in a few rare cases where we know we are going to have high contention, but we can't use a producer/consumer pattern for some reason (probably performance).
 +
 
 +
* Adjusted the Add method on our List implementation so that it won't have array out of bounds errors if multiple threads are mangling a list together.  It will just have a bit mangled data.
 +
 
 +
* Completely reworked how the targeting lists for ships are tracked from a technical standpoint, using the new features now built into lists.
 +
** This is a lot more similar to how we handled this prior to the last few weeks, and it is lockless and thus free of any risk of deadlocks.  We have been having some sim deadlocks (rare, but still a thing), and the new locks that were here seemed to be the culprit.
 +
** Thanks to Pyrrhus, trabbo, and others for reporting.
 +
 
 +
* An even more recent change involving locks for the "incoming shots" calculations is now using the new list features to safely avoid locks and thus gain a bit of performance and again prevent deadlocks from happening.
 +
 
 +
* I was unable to duplicate things being unsuitably unrandom (the outguard were always different for me no matter how many I generated in a row), but I've now put in place a default state for our random (MersenneTwister) so that if it is in the default state (indcated by -17), it will pull a random seed from the central RNG before generating values.
 +
** This should stop any form of stale generation that happens for whatever reason, even though it wasn't something I could personally duplicate.
 +
** Thanks to Tim_Fragmagnet for reporting, and StarKelp for verifying that it also didn't work for him.
 +
 
 +
* In order for most anything to happen in the game, a "game command" has to be dispatched from a player or an AI or NPC, and then it gets scheduled and executed.  We've been lately seeing a very strange issue on multiplayer clients, usually only after a very long period of the game being played (half an hour or several hours) where these suddenly start being mangled on the client but not the host.
 +
** This is something that has required a code review, and I just don't see anything wrong with any of the code, and the touch points are (on purpose) very narrow, so this really should not be possible.  With that in mind, obviously it IS happening, so the next step is to figure out a way to either stop it (despite not being able to understand it) or trap it (to thus understand and then fix it).
 +
** Previously I've attempted to fix this by making sure that the methods that send gamecommands across the network can't get double-run, and that seems to have yielded no improvement (they were likely already protected enough from that).
 +
** Previously I also changed the nature of the pools for gamecommands (to be official pools instead of my first proto-pool for this style of data in this game), which led to more efficiency, but it's not clear if there was actually a direct improvement.  I suspect that the old style was able to have rare problems, but it should have been affecting solo play as well, and either way didn't solve our core problem here.
 +
** This new build now changes the type of pool from being a ConcurrentPool<> to being a TimeBasedPool<>, so that if there are latent calls to a gamecommand, there's an 11-20 second period during which that game command won't be reissued as a new command from the pool.  This should stop the direct issue if it's a matter of a gamecommand being handled in two places.
 +
** This new build also puts in some gates for when gamecommands are being serialized and deserialized, and if it tries to do certain other actions (like put them in the pool) when they are in the midst of that, it will show an error message with a stack trace.
 +
** And finally, this new build also puts wrappers around all of the contents of the gamecommands, so that if you call to those contents it checks to see if it is in the pool, or in the process of serializing or deserializing when data is unexpectedly altered, and if so it will throw an error message with a stack trace.
 +
*** The current suspicion is that some sort of code somewhere is hanging onto a game command for too long, and making some sort of inappropriate changes to it, or that a game command that is meant to be sent to the client is instead put back into the pool too early.  If one of those is true, then these warning messages will catch it.
 +
 
 +
=== Mod Updates ===
 +
 
 +
* Updated Frigates Focus mod. Now also usable in Expert mode since the overrides now account for the alternate version of the ARS seeded in Expert.
 +
 
 +
* Modders can now put the 'UniqueCommandStationCaps' tag on Command Stations, to have them show any galaxy caps they have, like how Spire Cities work in Spire Infused
 +
** Put in for Classic Fusion, could be useful in general for limiting, but powerful, station variations
 +
 
 +
=== New Hydral Federation mod by StarKelp! ===
 +
 
 +
* Added in the Hydral Federation mod (requires The Spire Rises)
 +
** All of the races, fresh from the best ending from The Last Federation, have come to this galaxy. Lead by the Hydral, they have seen the endless war propagated by yourselves and the AI and have deemed you both a lost cause. They will slowly take over the galaxy, locking down planets, and '''PERMANENTLY''' removing them from the game.
 +
*** The Hydral cannot be stopped, only temporarily halted. They have no desire for diplomacy with either you or the AI, both of you being even worse than even the Thoraxians or Burlust in their eyes. Having the Hydral Federation in your game is inflicting a very powerful third party that, unlike the AI, will rapidly expand. Rivaled only by the Dark Alliance in power, it is a race against time to see who achieves their victory first.
 +
 
 +
== 4.004 Easy There, Hack Response ==
 +
(Released March 10th, 2022)
 +
 
 +
* Remove an unneeded game lobby setting from the Spire Infused Empire.
 +
 
 +
* Adjusted the expert, logistician, and challenger tooltips to reflect the fact that reduced resources (for hacking) starts out on challenger mode, and corrected things to note that beacons are only unavailable starting on logistician mode.
 +
** Additionally, the lobby tooltip for Expert no longer mentions having many fronts you must defend, but logistician now does.
 +
** Thanks to Strategic Sage for requesting.
 +
 
 +
* Added a new setting to the game section of personal settings: No Ironman
 +
** If a campaign would normally be ironman, this will force it to NOT be ironman.  Great for testing, but does make any save that would normally be ironman flag itself as being in cheat mode (so no achievements, etc).  In multiplayer, this only matters on the host.
 +
 
 +
* When modules on a ship line are changed around, all the ships in that line are paralyzed for 10 seconds.
 +
** Thematically, this is them doing their retrofitting.  Functionally, this hopefully removes any incentive to drive yourself crazy microing the  modules on and off during battle.
 +
** Thanks to motai for suggesting.
 +
 
 +
* The cheat code "I don't even see the code" can now be entered without the apostrophe, and optionally without the second parameter (it then just gives you 400 HaP).  You can also use the command "hacking" for short.
 +
 
 +
* The game now supports reading in custom fields as "true" or "false" and converting those into bool values as you would expect, versus before it freaked out in an inscrutable way if you didn't remember to say "0" or "1".  Now if it freaks out, it also gives you clarity on why.
 +
 
 +
* Add a corrosive guard post to DLC3
 +
 
 +
=== Hacking Response Tweaks ===
 +
 
 +
* Hacking responses were incorrectly including a Fallen Spire component even when they should not. This was leading to drastically inflated hacking responses
 +
 
 +
* Hacking estimates for hacks with a strong post-completion response could be undercounted if completing the hack would bump you up one response tier (ie from 'Very Easy' to 'Easy')
 +
 
 +
* The hacking estimate should now include the Exo response strength (where appropriate)
 +
 
 +
* With the Hacking Debug setting enabled, the hack tooltip will tell you a bunch of information about how the estimate ie generated. This is for debugging/development use only
 +
 
 +
* Thanks to Strategic Sage for a bug report
 +
=== Dire CPAs ===
 +
 
 +
* Dire CPAs are now in the base game. It's a galaxy setting one enables in the galaxy lobby.
 +
** When enabled, every so often CPA Bunkers will be spawned on the map. When a CPA is launched the CPA bunkers will release extra ships to make CPAs even scarier.
 +
** This just makes the game more challenging, and is on by default for some of modes harder than HA.
 +
 
 +
* The CPA announcement now includes the strength of the Dire CPA component (if any)
 +
** Thanks to Strategic Sage for suggesting this
 +
 
 +
=== Return Of Faction Beacons (The First Two, Anyway) ===
 +
 
 +
* Beacon hacking returns!  At the moment, it's just for the nanocaust, but that's simply because that's all the xml I have set up thus far.
 +
** This can be set up, using only xml, to work with any faction or combination of multiple factions, and you can give any number of options for hacking them.  With the nanocaust, I have 18 different options set, with intensities 5-10 of hostile to all, hostile to player, and friendly to player as options.  When it's friendly to player, it also has them spawn near to you.  Each hacking option is a fixed set of faction options, but so it's not truly freeform, but it does not have to be decided in the lobby, which is really nice.
 +
** There's a ton more power here than in the old beacon system, but one of the biggest improvements is to performance.  In the past, this was having to include the entire faction, but just turn it off, when it was present.  This was a huge performance drain, and also when many beacon factions are eventually added as options, particularly in mods, it would literally not fit in savegames.  The new approach adds no factions until you choose to hack to meet them, and thereby lets you control the amount of insanity that is involved.
 +
** I will be making some more changes tomorrow, and adding in more beacons and beacon factions, but this is an excellent starting spot.
 +
 
 +
* The game now supports having beacon factions that are different mixes on different options in the beacon hacks.  Because why not.
 +
 
 +
* All of the old unused beacon faction code and xml is now fully removed, since it is no longer needed at all even for reference.
 +
 
 +
* The Fallen Spire beacon has been added back into the game, but it only seeds if you don't already have fallen spire or a spire-infused player present.  Also, just like the regular fallen spire, it requires a metal-using player to be present in order to seed (so solo necromancer empire can't pair up with it).
 +
 
 +
* For beacon factions, added a new blocked_from_seeding_unless_all_of_these_factions_are_included, which allows you to specify a required list of factions that must be present in order for it to seed.
 +
** Thanks to StarKelp for requesting.
 +
 
 +
=== Bugfixes ===
 +
 
 +
* The tooltips for ships now show a lot more details for any auto-targeting targets they have for each of their systems.
 +
** Additionally, it now shows which auto-targeting group they are a part of.
 +
** Thanks to Tim_Fragmagnet for a report that inspired us to have more information visible here.
 +
 
 +
* The way that auto-targeting groups are calculated is now done centrally, and it's no longer possible for units to potentially get lost in the shuffle and not get auto-targeting orders.
 +
** Thanks to Tim_Fragmagnet for a report where this was probably what was happening.
 +
 
 +
* The way that "incoming shots" are tracked on ships, which is used in overkill detection, has been improved a lot.
 +
** First of all, it's more efficient now, and tracked internally only, and has more granular cross-threading protection rather than allowing for a cross-threading error to interrupt the entire process.
 +
** Secondly, any incoming shot now times out after 10 game seconds, so nothing can get stuck in a "it's going to die because of incoming damage" state where enemy units won't fire on it.  Not sure if this was happening, but it's possible, and now it should not be.
 +
** The "Show incoming-shot debug data in unit tooltips" debug setting has been removed, as the individual shots are no longer interesting to see in the same way.
 +
** The tooltips now show how much damage the ship is expected to take from incoming shots, or if there are incoming shots but no damage, then it also shows that.
 +
** It is likely this will fix some bugs, or it's possible it might just make things more clear if a bug in this area resurfaces.
 +
** Thanks to Tim_Fragmagnet for the related report.
 +
 
 +
* Adjusted targeting logic so that if a unit is not fully claimed, but belongs to a player, it is now valid to be shot.  Previously, some metal harvesters that were half-alive were not being shot further, which looked like a bug.  Now they get pasted instantly.
 +
** Thanks to Tim_Fragmagnet for reporting.
 +
 
 +
* Fixed three more sets of tooltip errors that could happen right when units were dying.
 +
** Thanks to Lord Of Nothing for reporting.
 +
 
 +
* The "bonus for sitting on a planet for a while" tooltip text was cut off and had some other oddities.
 +
** When this is a ship owned by nobody, it now just tells you about it in the abstract, as if you were not looking at a specific ship (so, if you capture this, here's how it would work).
 +
** When it's a ship owned by an NPC, it doesn't show this at all.
 +
** If this is not showing the first half of the sentence, it makes sure not to write the last half of the sentence (such as with cloaked flagships).
 +
** Thanks to Zer0h1nder and Strategic Sage for reporting.
 +
 
 +
* In the event that a wave timer would be negative or zero (aka, it thinks the wave should already have landed, but it has not yet), it now says "SOON" on the notification, and "any second now... but the exact timing may be a surprise" in the tooltip for it.
 +
** Usually waves will launch on time, but there are cases where the game is running the AI threads more slowly because of load, or the "only run every X seconds" logic is there anyway, and so the exact timing is just not actually exact in all cases.
 +
** It doesn't really make any sense to try to make the timing more exact, since this flexibility is one of the things that helps performance, and not knowing down to the second when a wave is going to arrive is mildly interesting anyhow.  So now it's simply handled in a way that makes it not look like a bug.
 +
** Thanks to Daniexpert and NRSirLimbo for reporting.
 +
 
 +
* The description of Showdown Devices now more correctly matches their behaviour
 +
 
 +
* Put in error handling for CalculateMatchesOnBackgroundThread, since I ran into an exception on that background thread in the internal version for some reason.
 +
 
 +
* Fixed an exception that could happen when getting the faction's internal display name after a fairly specific set of operations involving adding a faction and then going back to the menu and back into the game.  Likely it was also triggerable by other circumstances, but it's hard to be sure.
 +
 
 +
* Fixed a long-standing bug in the display of multipliers regarding Attack Bonus of type 'multiple_of' in R-view.
 +
** Big thanks to Daniexpert for this fix, and figuring out how to fix it!
 +
 
 +
=== Mod Updates ===
 +
 
 +
* Update to More System Defenders. Now allows players to choose a version of the Stormfront Ark to lead their Ark Empire within that game mode.
 +
 
 +
== 4.003 A Bit Too Chromatic Horrifying ==
 +
(Released March 9th, 2022)
 +
 
 +
* CPA Bunkers now try not to spawn on planets with a CPA bunker already. Remove the AIP cost for killing them
 +
** Suggested by Strategic Sage
 +
 
 +
* The starting data structures and the first test xml has been set up for the return of beacon factions.  It's not wired up to do anything yet, but the data is pretty much fully described for the nanocaust as a first test case, so this should then open up the rest of things for getting things to be beacon-ready.
 +
** The new data format is pretty cool, as it can set any custom fields as part of the beacon options, and it can also include multiple factions from a single beacon if we want to.  The main purpose of that is really for multi-faction factions (there are a number of those), but it could in theory also be used for something like a beacon that calls in two warring factions that explicitly hate one another, or whatever else.
 +
** Unlike the prior beacons, this is something that is really mod-friendly, or it will be once the feature is completed, so that's also pretty exciting.
 +
 
 +
=== DLC1 ===
 +
 
 +
* The fallen spire and the spire infused empire should now use shared logic for determining whether to have the dark spire enter conquest mode
 +
** Strategic Sage indicated there was a problem
 +
 
 +
* Add a new Galaxy Setting to allow players to prevent the Chromatic Horror from moving player structures around.
 +
** This is untested
 +
** Requested by Crawlers
 +
 +
=== DLC3 ===
 +
* The Necromancer rifts journal clarifies that rifts will continue to spawn over time
 +
 
 +
* Rift hacks can now grant 30 essence instead of 15, since people considered 15 to be too low
 +
** From a balance discussion on discord
 +
 
 +
* Rift hacks to increase bodyguard caps now give double the number of bodyguards
 +
** From a bug report by pmm5000_1
 +
 
 +
* Rework how Templar mark levels are chosen. Each wave leader picks a random mark level based on the AIP/Templar difficulty (at the moment, >= 180 AIP means every wave leader will be between 5 and 7; so you might get 1 mark 5, 1 mark 6 and 2 mark 7s.
 +
* All Templar ships that spawn from a structure (either as part of a regular wave, hacking response wave or to defend their territory, will take the mark level of the structure they spawn from. So a mark 5 castle will spawn mark 5 ships
 +
 
 +
* Add the concept of 'Corrosion Damage'. Corrosion damage sticks on the enemy ship, and applies over time.
 +
** Every second the target has some of its remaining, unapplied Corrosion Damage happens to the unit; something like 8% (minumum 8 damage). This damage goes directly to the target's hull.
 +
** An entity-system can have an an additional flat amount of corrosion damage with the XML tags corrosion_damage=X and corrosion_damage_added_per_mark=Y
 +
** An entity-system can all say all_damage_is_corrosive="true", in which case it will all be corrosive.
 +
*** Add a Corrosive Guardian to DLC3 as an example for using this new mechanic.
 +
*** Corrosion damage example. I have 50 corrosion damage on me. Next second I take 8 damage, and there's 42 damage left. Someone hits me for 100 additional corrosion damage. I now have 142 corrosion damage and take 15 next second; there's 127 corrosion damage left on me
 +
 
 +
=== Bugfixes ===
 +
 
 +
* Add some debugging code to GetWaveComposition
 +
** From a bug report by henry700
 +
 
 +
* Added a new ThrowawayDrawBagCanMemLeak data type, and this internally uses our existing ThrowawayListCanMemLeak type (which is mostly used in mapgen until now).
 +
** These are used for very short periods of time, and are meant to be thrown to the garbage collector.  I had wanted to avoid this sort of thing, but we've been having persistent intermittent issues with cross-threading issues on certain worker methods (like for wave spawn), and the RapidAntiLeakPoolable approach that I had developed is just not robust enough.  I also worry about that contention on that leading to slowdown in larger games.
 +
** I am going to build out some more of these kinds of throwaway collections and probably will phase out a lot of the RapidAntiLeakPoolable thing since it seems to only be causing problems.
 +
** There is also a new interface called IDrawBag<T>, which can be used to manipulate either kind of draw bag without knowing or caring which kind it is.
 +
*** I actually am not yet using that on any methods, because on the methods where it would be relevant, I actually want to signal that only a throwaway draw bag should be used, because the sorts of manipulations that are being done in those methods are not for permanent data.
 +
** As an aside, this should not be taken as a signal by modders/developers to just use the throwaway collections willy-nilly.  There are many better code patterns, such as not using a collection at all and instead using an iterator/dofor, which have the benefit of both performance and better memory usage, while still having the same amount of readability.
 +
*** This is essentially something that should be used in place of places where we were using RapidAntiLeakPoolable stuff before, because that had its own performance implications and occasional cross-threading issues.  If you can refactor slightly to avoid the need for any of this, and just use an iterator, then so much the better.
 +
** Thanks to henry700 for the most recent report of an exception in ChooseWaveTarget.
 +
 
 +
* A new version of StringBuilder has been added into Arcen.Universal, which is slightly more efficient than the one that microsoft provides, while providing the same functionality (the subset we use, anyhow).
 +
** Referencing System.Text is now something that will cause ambiguous references between our version and theirs, so just removing that reference will solve the issue for any mods that are affected.
 +
 
 +
* Fixed exceptions that could happen in the quick start screen if your local player profile happened to be null at the current time.
 +
** Thanks to Dismiss for reporting.
 +
 
 +
* Fixed an issue where the game was limiting you to only one Battlestation on Challenger+, when it should have been on Expert.
 +
** Thanks to Strategic Sage for reporting.
 +
 
 +
* Fixed an exception that could happen in tooltip generation if the ship you were hovering over died at just the wrong moment.
 +
** Thanks to Relay Bot for reporting.
 +
 
 +
* For purposes of movement and panning, the camera now clamps its maximum "frame delta time" to be the equivalent of 20fps, or a twentieth of a second.  If there is a very large single frame (garbage collector, waiting on disk, whatever), it will thus no longer cause your zoom to shoot all the way in because of getting a very large d/t for a frame where you were rolling the mouse wheel.
 +
** The one potential downside of this is that if someone legitimately has ongoing performance that is worse than 20fps, their mouse inputs will be slowed to whatever the ratio is to 20fps.  So for example if someone had ongoing 15 fps, their mouse inputs would be sluggish at 75% of the normal speed.  At 10fps, it would be sluggish at 50% of normal responsiveness.
 +
*** Since I'm not aware of anyone routinely running that low (and anything at 20fps or higher will perform with normal responsiveness), this seems like a safe thing to do.
 +
*** I could have clamped this at 10fps, but part of the thing is that some mice have quite a sensitive wheel that can be rolled or spun very far in a short amount of time, and a tenth of a second will probably still allow for more zoom-in at once than is desirable.  That's one of the main reasons I haven't done anything about this issue despite it being around since 2017.
 +
** Thanks to Mac for the most recent reminder on this.
 +
 
 +
* In the event that a unit was supposed to repair another unit, but that other unit already has been healed full by whatever means, it now just silently skips that versus... throwing an error, which was an odd choice.
 +
** Thanks to Daniexpert for reporting.
 +
 
 +
* Added more code to make absolutely sure that DoOnAnyDeathLogic_HostOnly_AfterFullDeathOrPartOfStackDeath is not ever run on MP clients.
 +
** Thanks to Badger for reporting.
 +
 
 +
* Since gamecommands are coming through as scrambled to clients in multiplayer some of the time, but the canary code after them is not being hit, it is very likely that they are being sent in an improper fashion by the host.  The host is executing them perfectly, so it must be something that is changing during the actual send, it seems like.  With that in mind, I've put extra gating on the host (and on the client just to be extra careful) to make sure that they never overrun themselves in the same method there, since that seems to be the most likely source of this sort of error.  If this doesn't work on its own, I can put in some more detailed logging, but after yet another code review, this seems to be the most likely culprit.
 +
** Thanks to Badger for the most recent report.
 +
 
 +
* When a planet is taken over by a new AI (from reconquest seeding via an Usurper), it's possible that a new AI is moving in compared to the AI that originally owned the planet.  Either way, it now shuffles around the types of units to spawn there based on the AI taking over, so that the planet will have a fresh set of units that it prefers to seed there.
 +
** When it comes to the same AI taking over, this is not really a big deal, but makes for some minor variety.  When it's a different AI taking over, this is actually a really big deal, because the new AI type might not be intended to use the same ship types as the first AI type.
 +
** Thanks to GreatYng for this report, with investigations on their part going back several years actually.
 +
 
 +
* In multi-AI games, it's possible for AIs to launch waves or border aggression from planets that belong to other AIs.  Normally border aggression or wave contents is determined by the AI groups chosen at that planet, but when it's from a different AI, it may not be intended to share that AI group.  In those cases, it now finds a different random AI group that it is supposed to have to use to populate the wave or the border aggression.
 +
** In multi-AI games, this should keep AIs with unique ship types from sharing those with their partner (or enemy) AIs that coexist with them.
 +
** This, like the other adjustment to AIs after reconquest seeding, is untested but should work.
 +
** Big thanks to GreatYng, again, for chasing this down over about a three year period.
 +
 
 +
== 4.002 Macrophage Live! ==
 +
(Released March 8th, 2022)
 +
 
 +
* The encyclopedia now honors the "pause when opening escape menu" options that are in settings.
 +
** Additionally, when you are in-game and looking at it, the header of it now says "game still running" in cyan, or "game is paused" in the same orange that the resource bar uses.
 +
** Thanks to trabbo for suggesting.
 +
 
 +
* When you have a necromancer in the game, some types of AI defensive structures can be used to produce near-infinite Skeletons, Wights or Mummies. The game now swaps these structures for AI Fortresses, which should still make the planet a challenge
 +
** To apply this to new structures, add a tag "SwapOutForNecromancer" to those AI Defenses. With this tag the game will replace those structures with AI Fortresses when there is a Necromancer.
 +
 
 +
*  Rejigger the Necromancer starting ships to not include variants. I was worried it would encourage players to spec science into things they don't have access to, and potentially overwhelm a novice. Instead you get a lot of Base skeletons and wights.
 +
** This is intended to be power neutral for the player.
 +
 
 +
=== Bugfixes ===
 +
 
 +
* Fixed an issue where two legacy xml files were removed (rather than just blanked out) as part of the 4.0 upgrade, and so installing into the existing folder the game was already in would lead to errors.  These files have now returned, but are empty, and thus overwrite the old files, allowing people to install things over-top of their existing installation.
 +
** Also, this winds up then not relying on Steam or GOG Galaxy to properly delete the missing files, because they don't always do that.  Once a file exists in the wild, we try never to remove it, only to deprecate it.
 +
** Thanks to trabbo for reporting.
 +
 
 +
* Some errors were happening related to drones moving between different fleets of the AI, which I think is something that happens when you kill the drone producer.  This error no longer happens, and it no longer considers that and a few other cases an error at all. 
 +
** If the error does come up now, it also give a bit more information than before.
 +
** Also if this error does come up now, it properly sets things up to not endlessly spam errors about any single unit.
 +
** Thanks to [LA] Talderius for reporting.
 +
 
 +
*  More firmly fix a problem where Necropolises were rebuilding on planets with AI Reconquest Command Stations
 +
** Thanks to daniexpert for reporting
 +
 
 +
* Add some additional randomness to the Grid map type's random connections
 +
** Reported by Tim_Fragmagnet on discord
 +
 
 +
* Add some defensive code to brownout notifiers
 +
 
 +
* Fix a typo in the fuel description
 +
** Reported by Tim_Fragmagnet on discord
 +
 
 +
* Fix a flicker in the hacking difficulty estimate colour
 +
** Thanks to Zer0h1nder for reporting
 +
 
 +
* Player-allied ZA Castras can no longer be hacked
 +
** Thanks to Zer0h1nder for reporting
 +
 
 +
* Fixed an issue where GameCommands were using a custom ConcurrentQueue solution instead of an actual proper pool, and that was probably leading to some game commands getting added in twice (there was no protection against that, unlike in the proper pooling solutions), and thus this is likely the culprit for some of the deserialization issues that we were seeing on MP clients.  It's probable that this was also causing other issues.
 +
** As part of this, I consolidated things to one pool rather than one pool per game command type (this was something that was required based on the nature of the pool initializer methods).  A side effect of this is lower memory usage from commands in general, and fewer of them in existence during the game.  Originally I had split it because I was worried about contention between multiple threads, but we're really an order of magnitude away from having to worry about that, which is good.  A lot of those original design choices were because I made the changes here very early on into the refactor before I had truly tested out every aspect of performance and behavior that came over the 8 months after that.  And then I just never noticed that this was a bit off.
 +
** Thanks to Badger, ptarth, and likely others for reporting.
 +
 
 +
* Fixed a bug that effectively made the Macrophage never try to build Telia
 +
** Thanks to Relay Bot for the report
 +
 
 +
* Fixed a bug where Macrophage wouldn't return metal to their Telia if they were being challenged to fisticuffs by a tanky hostile ship
 +
** Thanks to Relay Bot and Zer0h1nder for the report
 +
 
 +
=== Mod Updates ===
 +
 
 +
* An XML property tag was renamed in the base game. This in turn broke some station keeping entities within More System Defenders (MSD) as the name of the property being set was no longer the same. This is now fixed to again call the right property.
 +
** Essentially the tag in question is for keeping certain station-keepers off of battlestation and citadel grants from the ODSS. Same logic is used in DLC2 for the various drone hangars.
 +
 
 +
== 4.001 Autobuild Automation ==
 +
(Released March 7th, 2022)
  
 
* Moved the unit encyclopedia link to the far right of the top bar.
 
* Moved the unit encyclopedia link to the far right of the top bar.
 
** Thanks to Zer0h1nder and Strategic Sage for suggesting.
 
** Thanks to Zer0h1nder and Strategic Sage for suggesting.
 +
 +
* In the event that there are too many drones created by an NPC faction, it will start deleting the excess of drones now.  Additionally, it will not produce drones or release them if it would put them over cap.
 +
** Drone guns, on the other hand, will still fire in these cases; most likely the outcome will be older drones dying off inexplicably rapidly when that happens.
 +
** Thanks to Mysais for reporting.
 +
 +
* A new "Raid" category has been added for planet importance options.
 +
** Thanks to Bummeri for suggesting.
  
 
=== Marauders ===
 
=== Marauders ===
Line 100: Line 1,729:
 
** I also went (perhaps) a bit overboard with the buffs, but I'd like to know that player feedback as a much stronger necromancer makes the game more fun. Right now the game is harder than HA according to testers, so I'd like to see what people think about the game being a bit easier than HA; if it's just way more fun to feel Powerful as the necromancer then we can lean into it to find the sweet spot.
 
** I also went (perhaps) a bit overboard with the buffs, but I'd like to know that player feedback as a much stronger necromancer makes the game more fun. Right now the game is harder than HA according to testers, so I'd like to see what people think about the game being a bit easier than HA; if it's just way more fun to feel Powerful as the necromancer then we can lean into it to find the sweet spot.
 
** If it turns out that these buffs are not enough to make the game feel easier I'll make more changes, because I really would like to know how a Buffed Necromancer feels
 
** If it turns out that these buffs are not enough to make the game feel easier I'll make more changes, because I really would like to know how a Buffed Necromancer feels
 +
 +
* Added seeding of Necromancer Utility building at the start of the game.
  
 
=== Bugfixes ===
 
=== Bugfixes ===
Line 107: Line 1,738:
 
** Additionally, if you don't have any builders present (or all of them are crippled or otherwise disabled), a message pops into the chat area that states that.
 
** Additionally, if you don't have any builders present (or all of them are crippled or otherwise disabled), a message pops into the chat area that states that.
 
** Thanks to Dismiss for reporting.
 
** Thanks to Dismiss for reporting.
 +
 +
* Fixed the tooltip on the "starting metal" option in the lobby to include the text: Default is 2.5 million (that is also the maximum, because adding more would not fit in the storage capacity of your starting command station).
 +
** Thanks to Incognito and Strategic Sage for reporting.
 +
 +
* Fixed a couple of places in the per-second sim repair where in super duper large games it could wind up assigning the wrong unit to the central registry, as that unit died in the middle of being checked on that thread.
 +
** Thanks to Mysais for the save that demonstrates this.
 +
 +
* Fixed an issue with the display in the escape menu claiming there were a much larger active number of shots than there really were.  What it was counting was actually the number of shots that were ever registered in the current session, and that list can indeed get to be hundreds of thousands or millions of entries long, without it being a performance concern.  The number of shots actually flying in the air right now is a much larger concern.
 +
** Thanks to SirLimbo for reporting.
 +
 +
* Fixed a handful of typos.
 +
** Thanks to Strategic Sage for reporting, and Dvd as well.
 +
 +
* Potentially fixed an issue at SetParentEntity in entity systems.
 +
** Thanks to Alivaril for reporting.
 +
 +
* Previously, if you hacked a Zenith Miner to turn a planet nomadic, and you did not have any other nomadic planet,s it would just throw an error instead.
 +
** The game now has a game command for belatedly adding factions to the game (this will be the exact thing required for beacon factions to return, actually!), and it uses this to add in the nomadic planet faction, thus letting the hack work properly.
 +
** Confirmed that the nomadic planets work properly after addition, as part of this.  This was also impacting the nomadic galaxy option.
 +
** Thanks to The Beast of Bognor and Incognito for reporting.
 +
 +
* Fixed a bug where tachyon planning could still have a cross-threading exception.
 +
** Thanks to Zer0h1nder for reporting.
 +
 +
* The game is now much better about enforcing two AIs when your campaign type requires it (Expert and upward).
 +
** If you are starting a quickstart in Expert+, it now copies the first AI if there is only one, and uses those settings for the second AI.
 +
** Also fixed a bug where it was not even setting the quick start to the desired value when you started a quickstart (it was always whatever was baked into the quickstart).
 +
** Thanks to Strategic Sage for reporting.
 +
 +
* Updated A Twisted Enemy from DLC1 to be a newer copy of the quickstart that is not on the honeycomb map.
 +
** Thanks to Strategic Sage for reporting.
  
 
== Prior Release Notes ==
 
== Prior Release Notes ==
  
 
[[AI War 2: The Great Refactor]]
 
[[AI War 2: The Great Refactor]]

Latest revision as of 20:28, 22 April 2022

Contents

Next Release Notes

AI War 2: Post Completion

What was this phase all about?

We finally got out of the endless beta of The Great Refactor, and DLC1 had been been majorly beefed-up and multiplayer was better than ever. This phase marked the very last stages of the multiplayer beta before it left that status.

This phase was also a concerted shift back to working on DLC3 (The Neinzul Abyss), which was the final DLC for the game. Many of the various remaining kickstarter items were also taken care of (though a few last backer rewards still lingered after this period), plus some other bits that we just always wanted to add for the game.

This all culminated in the release of DLC3 and the AI War 2 Complete Edition. You can read a retrospective of the entire project that came out with that, if you like.

5.000 End Of An Era

(Released April 22nd, 2022)

  • The main menu has been updated to reflect the fact that multiplayer is no longer in beta status.

DLC 3

  • Given a report that the Samurai Frigate and accompanying Katana sub-units were rather weak adjusted the units to have a much more applicable niche.
    • Instead of only having a bonus when enemy armor exceeded 180mm now has a split set of bonuses. If the target has no shields do an extra 50% damage. If the target armor is below 80mm does triple damage.
    • Moved 300 base damage from the main entity to the sub-units. These now comprise a significantly larger share of the total damage potential.
  • Fix some typos in the necromancer journal
    • Thanks to Strategic Sage for reporting
  • Fix a possible bug if you are trying to hack-swap a necropolis while it was still under construction
    • Thanks to ptarth for reporting
  • Fix a null reference exception in the necromancer fleet code
    • Thanks to Strategic Sage for reporting

Bugfixes

  • Fixed error complaining for missing DLC1 when DLC2 is active.
    • It regarded Makeshift Drones missing the encyclopedia_counting_redirects_to that is set to the DLC1's Makeshift Drones.
    • Added a new "skip_error_message_if_encyclopedia_counting_goes_to_is_missing" tag to prevent the game from complaining in these edge cases.
    • Thanks to Lord Of Nothing for the report.
  • Fix a memory leak in the CPA Bunker code
    • Thanks to Matt Dyer for reporting
  • Any related units to a notification on the top bar of the screen now get extra frequent syncs from the host to the client in multiplayer.
    • This should solve various lingering issues with timers being out of sync, data being slightly stale, etc. There aren't that many notifications up there even in the super crazy cases, so just making sure that the client and host are extra in sync on those items is not a big network load.
  • Added a new IsUltraFrequentSyncedInMultiplayer flag on world-external and faction-external data for multiplayer purposes, and applied it to the AIP central info from world-external, and the sentinels data from faction-external, so that MP clients are really frequently getting updates on the status of AIP and waves and similar.
    • Tested, and verified that wave warnings and similar are perfectly in sync now.

4.995 DLC3 Release Candidate 1

(Released April 21st, 2022)

  • Fix a mistake where self-assembly unit tooltips were showing the wrong value on the Full Tooltip
    • Thanks to zeus and ptarth for reporting
  • Fixed a longstanding issue where if you had an issue on load in the first couple of seconds of it starting, or if you closed the game during the first few seconds of it trying to load, it would lose your settings.

DLC3

  • Added a bunch of Quickstarts for DLC 3
  • Add necromancer journals for shipyards, totems, towers and modules.
    • Thanks to zeus for suggesting and contributing the text
  • Fixed a bug with the Migrant's Dynamic Description not being entirely accurate in a particular fringe case
    • Thanks to Strategic Sage for the report
  • Elderlings now all have high albedo for theming and balance (counterplay)
  • Transcendent Elderlings statblock updated to make this truly final tier. Not quite Jormugandur but close
  • Transcendent Elderlings (aka Yellow Star / Red Giant Elderling) Weapon Rework
    • Both have same weapon weapons. Primary weapon is a fan beam (yellow and red, respectively). This powers up new, secondary weapon
    • Supernova weapon added. Requires 10 weapon points to fire (via primary weapon attack). Unleashes a supernova blast centered on itself with effectively planetary range hitting up to 500 targets. Ships with albedo >=0.7 take only 1% damage
  • Transcendent Flagship operational! Acquire this by summoning and defeating a Transcendent Elderling
  • Draugr ROF increased from 17s to 12s. Damage reduced from 1,700 to 1,200. Has same DPS but should be more impactful in a fight due to its knockback effect applying more often
    • Draugr's gravity generator now has the same range as its attack
    • Thanks to Starkelp for pointing out this unit was not living up to its potential
  • Increased Ikiryo gravity generator range so these aren't outshined by Draugr
  • Skeleton Lord Homes create 3 Lords per home from 2
    • Thanks to Tom for pointing out these were a bit underwhelming
  • Added Amber Turret to the lineup of available beach heading options for Sappers. This is a paralysis user that loves picking on smaller targets. No longer just Lazurite spam 24/7!
  • Disable the bubble forcefield modules for the necromancer due to some balance concerns on discord
    • The module will no longer appear in the UI. Existing games with ships that have used this module will have balance problems since you can no longer interact with the module (even to disable it).
  • Bubble forcefields from modules are now immune to Fusion's shield bypass, just like regular bubble force fields
    • Thanks to Strategic Sage for reporting

Balance

  • Significant balance adjustment to ships included in FRS picks. Due to complaints that the paper numbers always made fleet boosting options better even before the boosts are applied there have been some changes made.
    • Fleet boosting lines have been standardized to start at Mark 3 instead of Mark 5 and 6. These are mainly picked for the boosts they give rather than direct combat benefit of the line itself. Expatriate tech options still start at Mark 2.
    • Both fleet boosting lines and expatriate tech options have been adjusted to use standard line sizes with one exception. The Pincushion Corvette has a base line size that remains lower because of its significantly higher durability and damage output when compared to a standard Concussion Corvette.
      • End result is fleet boosting lines end up ever so slightly less OP in of themselves while the bonuses they grant are still the star of the show in Humanity Ascendant. In Expert mode they don't have a significant advantage in line size and starting tech level when comparing options.
  • Its been a long time since the Poltergeist was moved from T1 to T2 exowar tier. It was never touched up stat wise to remotely belong with its newer peers.
    • Hull and shields have been adjusted to the same values as all other T2 exowar units.
      • Hull 6,000,000 -> 12,000,000
      • Shields 3,000,000 -> 6,000,000
    • The speed of the unit has been revised upwards from 300 to 500. All the better to slip through a gap in the player defenses and snipe command stations.
    • Additionally with the increased durability its base metal value has been adjusted upwards to the T2 standard to better reward successful metabolism kills of this unit.

4.025 Lightning Conduction

(Released April 20th, 2022)

  • Beacon factions should now spawn with a random colour that's hopefully not to close to any other faction in the game.
    • Suggested by Daniexpert

DLC 3

  • Spectral and Vengeful Wights now require a Mark 2+ Necropolis to be enabled
    • These variants are a tier stronger than the others
  • Royal Mummy Bodyguards now have the right multiplier to their stats (they were actually weaker than non-bodyguards)
  • Decaying Mummy main attack reduced from 15K to 8K. This variant didn't get the reduction of the other Mummies, but is still stronger than its brethren
  • Fix a bug where the transform necromancer flagship was either always visible (even if you had no blueprints) or never visible at all. It is now visible only when you have blueprints.
    • Thanks to a number of people for reporting in its various forms, including ptarth and zeusalmighty.
  • Brutal Guardians now give the necromancer 5 science

Bugfixes

  • Fixed a subtle reflection-based bug that happened with trying to load the external data links after you changed your mod and expansion statuses around.
    • The most notable extant example of this was having a necromancer faction selected in the lobby, and then disabling some DLCs but leaving DLC3 on. However, there were a variety of other ways this could be hit, as this was a generalized issue. It was just subtle enough that it was hard to bring out any other fashion.
    • The core of this issue is actually a very interesting computer science situation. Essentially, it went like this:
      • Class ExternalInfo has a variable CachedExternalType on it, and a Pool that uses "this.CachedExternalType" inside an anonymous method to generate members of the pool.
      • After reload of the xml and thus also reset of ExternalInfo, the following things would be true:
        • CachedExternalType was not null in the outer method, and in fact was reset just perfectly.
        • Inside the anonymous method, it "this.CachedExternalType" would be null, presumably because it had been JIT compiled to point to a specific reference that no longer exists. This is one of those places where the intent of reflection and anonymous methods can get a bit lost.
      • Years ago, Keith and I had found the general solution to this is to declare a local working variable copy of the member variable, and have the anonymous method simply refer to the cached local copy. This tends to solve a number of issues, but in general ensures that the anonymous method always has the latest copy of whatever is going on in its specific local context.
        • It's actually possible that this is not a reflection issue, but an order of operation threading issue, although I doubt it. Experiments could be run, if we wanted to figure out the exact cause; or we could look at the JIT results. But really, diving that deep serves no particular purpose at this point. The solution is simply to remember to use local cached copies, regardless, and this is a case where I did not.
    • Anyhow, this seems to solve the reported problems, and may solve some other unrelated problems after doing an xml reload, as well.
    • Thanks to Dragoris, Badger, and Strategic Sage for reporting.
  • The "ultra frequent" syncs from the host in multiplayer now includes information on the visibility status and destruction status of each planet.
    • This was already synced across just fine, but throttled in such a way that it was noticeably late getting to clients at times. This could be a matter of a few seconds in the case of relatively small/early games, or it could be longer if the time-slicing/data-throttling was just taking that long to grind around and get it across.
    • The intel info is something that is immediately and visibly wrong when it is wrong, and so having just that part be kept in closer sync rather than the large and rolling sync makes intuitive sense.
    • Thanks to Dismiss, fierspier, and others for reporting.
  • Fixed a bug where the neighbouring planets of an Ark Empire Homeworld didn't have their Intel set properly.
    • Works only on new games!
    • Thanks to Glyoxim for reporting.
  • Add in some defensive code to the Migrant description appender
    • Thanks to Ithuriel0 for the report
  • Added more precise spawning logic for Custodian subfactions, in an effort to prevent the deathmatch bug from re-occurring
  • Added some extra logging to try to figure out what broke a specific savegame, but unfortunately after reviewing logs and code review, there are just no hints as to anything that would be wrong, going all the way back to the builds from March 25. At least a few bits of the code are more clear now in the logs.
    • The next step is to go back to the original game version of this save and see if I can load it there, in which case I can do some differentials that will be more informative.
  • Put in some self-correction for null FleetMember groups inside fleets.
    • Thanks to rem_tuas for the log with the report.
  • Fixed an exception that could happen in the deserialization buffer if the timing was just wrong when you exited to the main menu.
    • Thanks to slake-moth, Dismiss, and NRSirLimbo for reporting.
  • The game is no longer going to ever care or freak out about ships changing fleets if it's the same faction, or if it's between two player factions. It's been a long while since we had the accidental ships moving between fleets issue, and the problem cases were never of this sort to begin with. The errors that have been popping up since then were all false positives.
    • Thanks to firespier for the most recent report.
  • Fixed a bug with the Ark Empires where they were not seeding officer fleets at all (they should have been seeding golems only, no arks).
    • Thanks to Daniexpert for reporting.
  • Ark Empires can no longer start on the same planet as another player. That had all sorts of issues when done in multiplayer.
    • Thanks to Ushgarak for reporting.
  • Fixed the "No RepairMissingCenterpieceFromMembershipContents logic for fleet.Category:PlayerLoose" error, which was harmless but annoying.
    • Thanks to Ben H and Dismiss for reporting.
  • Fixed some exceptions that could happen in tooltip formatting.
    • Thanks to Dismiss for reporting.
  • Fixed a number of exceptions that could happen on MP clients if they did not yet have their instigator info from the host. It now is just silent while it waits for that to arrive.
    • Thanks to Dismiss for reporting.
  • Fixed yet another set of errors that could happen when exiting to the main menu from the game.
    • Thanks to Dismiss, Cyborg, and Hermanni for reporting.
  • Fixed an exception that could happen at "pathfinding debugStage 3000", probably right after map topology changes.
    • Thanks to Dismiss for reporting.
  • Fixed a very annoying issue where if you hit enter in the modal textbox popup, it would not save your changes, but instead would just exit. This was affecting the edit fleet name popup as well as a few other places.
    • Thanks to Dismiss for reporting.
  • Fixed an exception that could happen in GetAISentinelsCoreData and TryGetAISentinelsCoreData, which would lead to various issues.
    • Thanks to rem_tuas for reporting.
  • Fixed an issue where if a unit transforms into multiple units in multiplayer, only one of them would get immediately updated to the client.
  • Fixed some errors that could happen in WriteTextToSecondLineOfLeftSidebarInLobby() on human factions.
    • Thanks to easytarget for reporting.
  • Fixed an issue in the load save window where it was possible for it to be showing saves from the wrong campaign (wow was this confusing as a user).
    • Thanks to Strategic Sage and Dismiss for reporting.
  • Fixed an issue that was causing a lot of the AOE explosion effects (the lighting blasts and so on) to not appear properly.
    • This may have been going on since the time of the great refactor (aka sometime pre-4.0), but it's hard to be sure exactly how long.
    • Essentially, some of the code which was great for runtime was no longer able to load via reflection for analysis in the unity editor. So an interface had to be used instead for the array of that class which is used at runtime, thus providing a level of abstraction that would not foul up the editor-time reflection.
    • Thanks to Glyoxim for reporting.

Mod Updates

  • Big balance change to the Lightning Artillery Frigate from Exotic Ships (ExS):
    • Increased the base damage from 10000 to 25000, increased the chain link radius from 1500 to 5000 and increased the amount of times that the lightning can chain from 2 to 4 times. Reduced the damage dealt to non-primary targets from 25% to 15% of the base damage. Assuming my math is right this increases the potential DPS without damage modifiers from a pityful ~833 to a much more reasonable ~4708.

4.024 Graveyard Digger

(Released April 19th, 2022)

  • 300ish new planet names to the Standard planet name set have been added from the surveys from kickstarter backer rewards.
  • The new achievements for both DLC1 and DLC3 are now in place on Steam and GOG.

DLC 3

  • Increased orbital speed of necrobombs from 10 to 12
  • Wight balance/rework
    • Reworked Infectious Wight's weapon. Now fires 3 grenades at a time, splitting damage between targets caught in the blast radius
      • Thanks to CRC for suggesting a thematic replacement
    • Possessed Wight has damage reduced from 50K to 20K, but gains x3 multiplier to mass >=7tx
    • Vengeful Wight attack increased from 3K to 4K.
    • Spectral Wight no longer debuffs with its primary attack (a tesla-like weapon). Instead, it now gains weapon points with each attack. These weapon points multiply the base damage of its new on-death attack, up to x10 damage. This is based of design for classic's Fireflys.
      • Thanks to Puffin for creating and sharing this awesome mechanic!
  • Revenants now have a powerful secondary weapon that deals corrosive damage to massive units. This weapon requires weapon points to function, which the primary weapon now acquires by firing.

Bugfixes

  • Hot fix to D.Singularity Golem causing errors without DLC 3 enabled
    • This led to a harmless error on startup that was nonetheless annoying.
  • Added a notable performance improvement for games that have been running for a long while without reloading or closing the game or going back to the main menu, especially when there are a lot of shots being fired.
    • As part of this, also adjusted how our central dictionaries are handled for shots, ships, and wormholes, and thus have removed any chance that a deadlock was resulting from them.
    • Thanks to Matt Dyer and Sol for the "thread stalling" reports, which was the performance issue in question. Without the thread dump from them, this would never have been found!
  • Hitting reset to defaults in the lobby should now no longer be able to throw exceptions related to game commands being back in the pool. The errors were spurious in the first place.
    • Thanks to Badger for reporting.

4.023 Beacon Expansiveness

(Released April 18th, 2022)

Base Game

  • Add a journal for the beacons explaining whats going on.
    • There's been a lot of pushback/critique of the beacon mechanic, so hopefully this will clarify things for players
  • Beacons:
    • Now the Devourer Golem and the Human Resistance Fighters can be activated via beacons during the game.
    • Now beacons will be randomized at the start of each game.
      • Some beacons (HRF, Sappers, FS) are always seeded.
      • Added a new XML tag 'beacon_tier_for_seeding' used to sort the factions into 4 groups for seeding.

DLC1

  • Beacons:
    • Scourge's beacon is expanded with another hack that gives a scourge both to the player and the AI.
    • Added a beacon for Chromatic Horror.

DLC2 - New Music Track!

  • New music track in DLC2 -- The Zenith Onslaught!
    • The new "Dark Zenith" track is an excellent 3:39 piece that will play during times of excitement, or when the Dark Zenith appear, if you have adaptive music enabled.
    • This is a piece that is really in the classic mold of AI War, going all the way back to the roots of the series.
    • Major thanks to Badger and Pablo for jointly commissioning this and surprising Chris with it, and of course to Pablo for composing. This is truly a treat.
  • Beacons:
    • DZ and Svikari get their beacon.

DLC3

  • Wrangler Destroyer no longer has a reverse tractor beam. Instead, has a tractor beam that works on mass between 6-13 ( 6<X<13 )
    • Reverse Tractor was more interesting in theory than practice for this unit
  • Removed Electrotoxic damage from the Magnet Ward
    • Thanks to Sage for pointing out this was too powerful for a non-FRS ward
  • More Mummy nerfs
    • Reduced devour-vampirism from 20% to 10%
    • Reduce death gaze attack from 9K to 6K
  • Some tuning to the Elderling intensities (AI allied) for 1-4. Basically, High Tier Elderlings will rarely or never spawn at these intensities
  • Doubled Mines for Orbital Stealth Guard posts and they can spawn in a second, farther ring
  • Fix a tooltip problem in DLC3
    • Thanks to a number of people for reporting
  • Add an optional SharkB For Necromancer setting
    • Requested by zeus
  • Sapper Updates:
    • Fix some bugs where the sappers weren't building turrets correctly
    • Give the sappers some more beachheading options
    • Necromancer-allied sappers start with some extra resources to make them a bit more impactful
    • Sappers can now spawn fewer beachheading turrets
  • The templar assault waves against the necromancer now mention how many wave leaders there are
  • The planet combat hovertext now shows how much science/hacking/essence has been earned by the necromancer as well as the ships raised
  • Add some defensive code to the choose-a-specific-necropolis hack path
    • Thanks to daniexpert for reporting
  • Lots of DLC3 Achievement XML was added
    • Thanks to zeus for grinding these out
    • Some additional C# provided to support these achievements
  • Add some quickstarts from Dragoris and Strategic Sage
  • Beacons:
    • Added beacons also for Elderlings, Migrant Fleets, Sappers and Wild Hives.
  • Migrant Fleets
    • Now has two new Journal Entries to flesh out the total gameplay loop
    • Now has more dynamic tooltips, including origin planets and movement timers
    • Fixed a bug which resulted in no more Migrants arriving once you captured a planet more than 5 hops away from your homeworld
    • Various other small touching ups on descriptions and journals
  • Minor Faction Team Elderlings will prefer to spawn with an ally, but can also spawn on empty planets
    • I suspect Elderlings spawning w/o any allies will be quite weak, but perhaps people just want a readily farmable source of science?
  • Fix a typo in the caged skeleton description
  • Necromancer upgrades that are only available to higher mark Necropolises now point this out in the hack tooltip even if you can afford them
    • Requested by Daniexpert

Bug Fixes

  • Make the nanocaust better able to spawn in spectator games
    • Thanks to firespier for reporting
  • Fix an exception for MP clients in DoOnAnyDeath
  • Fix a bug where deepstrike was not being calculated properly, causing the Reserves to be bashful
  • When editing the loadout for a modular ship, the UI now prints the planet that the ship is on (where appropriate)
    • Thanks to Keith C for suggesting
  • Make the hunter even more careful about flying into player planets by accident
    • Thanks to Puffin for reporting
  • Fix a bug in fireteam tracing
    • Thanks to Puffin for reporting
  • Fixed a soft bug that could occur when loading Splintering Spire games

4.021 Scourge Of A Beacon

(Released April 15th, 2022)

  • Tweak the self-repair/disassemble UI code to remove a minus sign; it was confusing
    • Thanks to Ithuriel for reporting
  • Some tweaks to whether necromancer ships show their cap
    • Thanks to Strategic Sage for reporting
  • Don't play the outguard journal in a necromancer-only game
    • Thanks to Strategic Sage for reporting
  • Remove an excessive period in the necromancy tooltip
    • Thanks to Ithuriel for reporting
  • Change the wording for an Expert Mode journal to clarify the behaviour of turrets with reduced range
    • Thanks to Dismiss for the report and Strategic Sage for the text of the update
  • Fix a bug where modular ships were double counted in the selection menu
    • Thanks to ptarth and Ecthelion for reporting
  • Fix a few typos in the Settings menu
    • Thanks to schoenberg for reporting
  • Fix a bug that was causing some hunter fleet hitching motion
    • Thanks to Puffin Emeritus for reporting
  • Add some code to make the hunter fleet less likely to blithely traipse into player planets on their way to somewhere else
    • Thanks to Puffin Emeritus for reporting
  • Fix some typos in necromancer hack tooltips
    • Thanks to Strategic Sage for reporting
  • The Scourge Beacon now works
    • Thanks to Dragoris for reporting
  • Non-player nasty picks are no longer forced on for Expert+ mode. They are only forced on for Logistician+ mode, but are still available to all modes.
    • Thanks to CRCGamer and Strategic Sage for suggesting after discussions on discord.

DLC 2 Balance

  • DZ Harpoon Launchers rate of fire increased to 30 seconds from 17 seconds

DLC 3

  • Templar diff adjustments
    • Intensities 1-4 no longer spawn castles. This lowers the power ceiling for the Templar significantly
    • Intensities 1-5 Spawn "Weak" Sovereigns. These have x0.15 health and x0.1 damage. They spawn fastness instead of castle's
    • Lots of nerfs to Templar / buffs to player for Templar-intensities lower than 5 (in addition to the ones noted above)
  • Nerfed Necromancer Orb of sight damage, from 150 to 75
    • Thanks to Mac for the discord feedback
  • Updated Foppish Venator to have a corrosive attack. Some minor adjustments to a couple of venators
  • All guardposts (including the unique ones from the DLC 1 and 2 expansions) now have Necromancer "Tower Defense" Tech if you have DLC 3 enabled
    • This is to give the Tower Defense Tech a fun and powerful supplement to their previously underwhelming defense tech
  • Add some sandbox options for the necromancer, available in Galaxy Settings ==> Necromancer.
    • The first option is a multiplier for resource income; you can get up to 10x the hacking/science/essence
    • The second is bonus Hexes; you can get up to 10 bonus hexes per Necropolis.
      • Thanks to DadsGamingAddiction for the suggestion
  • The hovertext for a minor necropolis now explicitly tells you which fleet it's bolstering
    • Thanks to DadsGamingAddiction for the suggestion
  • All the necropolis types can now build for your flagships. They are deliberately very slow at building to make shipyards desirable
    • Thanks to Ithuriel for reporting
  • Sappers are more likely to build turrets near your Necropolises now
  • Adjustments to the Treacherous Totem
    • Orb of Entropy
      • now attempts_to_reach_orbital_point_at_speed="5000" (instead 8,000) to reduce jerkiness
    • Necrobomb
      • degrees_to_orbit_per_second="10"
      • attempts_to_reach_orbital_point_at_speed="5000"
      • Add necromancy damage to self-destruct (e.g., <death_effect_damage type="Necromancy" tier_name="Minor"/>)
  • Orbital Stealth Guardposts now have variants with minefields

4.020 Hotfix

(Released April 14th, 2022)

  • The ZA build defenses a bit more slowly (I saw some complaints about that)
  • Fix a bug with the Foppish Venators that was causing exceptions every few minutes
  • Give the corrosive guardian and guard post a new overlay
  • Add a scourge beacon with some options to serve as a template for others. I have not tested whether it works, but it should be easily imitated for other factions
  • Neinzul Custodian changes
    • Hives now spread out through allied territory more actively, instead of being limited primarily to their allies' homeworlds
    • Roaming Enclaves now stick around in fights far longer, instead of immediately leaving the moment their opponents even remotely start losing
    • Player allied Custodian spawn rates increased to match NPC faction rates
    • Spawning reduction per existing custodians reduced by 33%
      • This was originally put in place to prevent the Diamond Custodians from stacking 90% of their forces on the ai homeworld
      • With the additional logic of hives spreading out, this is no longer as prevalent

4.019 To Hack, Or Not To Hack

(Released April 14th, 2022)

  • Renamed the "Fusion Tower" into the "Dispersion Tower" since it has the weapon of a dispersion turret (this is an orbital for the Ultimate Fortress)
  • Ultimate Fortress is no longer hackable
    • This should be slain in glorious combat, not with some cowardly sabotage hack
  • Fix a typo in the Maddened Elderlings journal and the Mummyies journal
    • Thanks to Strategic Sage for reporting
  • Fix a bug where the nanocaust could sometimes sit around doing nothing
    • Thanks to Strategic Sage for reporting
  • Fix a recent regression where you couldn't hack for many types of ships
    • Thanks to a number of people for reporting

DLC3: Other

  • The Truant venator now spawns against both cloaking and high albedo ships. The Foppish venator now spawns against high mass ships
    • Requested by zeus

DLC3: Necromancer

  • Necromancer Hacks cost less points
    • Rift hacks from 25 to 20
    • Track Elderling from 10 to 1
    • Transform Elderling from 20 to 15
    • Corrupt Castle from 50 to 30
    • Claim Skeleton Amplifier from 50 to 30
    • Claim Wight Amplifier from 60 to 40
    • Claim Mummy Amplifier from 80 to 50
    • Transform Flagship from 30 to 20 (base hacking cost, still more expensive per mark of flagship)
  • All Necropolis now have a minor factory construction like the Phylactery
    • Shipyards will still be significantly better at reflecting
  • Wrathful Elderling/Flagship damage increased to 1,500
    • This W. Flagship was much weaker expected, this should be a pretty hefty buff
  • Orbital turrets now benefit from the Necromancer's "Tower Defense" tech
  • Mummy nerfs
    • Hull from 660K to 345K and Shields from 330K to 175K
    • Death Gaze attack reduced from 10K to 9K
  • Necropolis Summons should now spawn the right amount per attack
  • Dire Guard Posts only generate AIP on death when they are owned by the AI
    • This makes them safe for the necromancer to capture

DLC3: Templar

  • Templar Encampment MLRS attack from 450 to 750
  • Templar Encampment MLRS attack from 750 to 1250 and Sabot attack from 8K to 9K
  • Templar Castle Sabot attack from 13K to 15K

4.018 Stability And Abortability

(Released April 13th, 2022)

  • In the internal debug menu (the one from the escape menu), there are now "Log All Threads" and "Abort All Threads" buttons.
    • If the game is getting stuck in a background deadlock, this will give us some information on it. The tooltips have more information on it.
    • If you press the Abort All Threads button, it may crash the game (in theory -- so far it has not in testing), but it gives us exact stack traces (within reason) for all the threads it is aborting. Assuming that there is a stuck thread, and not a stuck Interlocked value, this will identify any deadlock for us to within the method that it exists in, at least.
    • If we wind up with still having deadlocks and no interesting thread outputs here, then I'll instrument the Interlocked values to keep an eye on those.
    • Thanks to ptarth, Pyrrhus, trabbo, and Sol for reporting.
  • Fixed a one-line error that was causing multiplayer clients to eventually get a flood of errors relating to GameCommands already being back in the pool.
    • What was happening was that it was being executed twice on the client if the command was a frame late, rather than only executing once. Mostly this would only show up after about 45 minutes of play, evidently.
    • Thanks to Badger, ptarth, Cyborg, and Dismiss for reporting.

4.017 Feeling Helpful

(Released April 13th, 2022)

  • Astro Trains and their prototype constructs now have their own Ship Class types for easier recognition.
  • For player allied fireteams, double-count their friendly strength on a planet when deciding whether to attack
    • The goal of this is to make player-allied fireteams much more willing to enter a close fight to help the player.

DLC 3

  • Skeleton, Wight and Mummy amplifiers no longer have a Ship Class of their own.
    • Thanks to ptarth for reporting.
  • Fixed planetary damage and speed modifiers for everything appearing everywhere.
    • Thanks to Strategic Sage for reporting!
  • Necromancers and Necromancer Sidekicks no longer have metal, energy and fuel shown in the special rows when looking at something buildable since they do not need to worry about those resources.
  • Fix a typo in a Neinzul Faction journal
    • Thanks to Strategic Sage for reporting
  • Fix a typo in a ZA journal
    • Thanks to Ithuriel0 for reporting
  • Nerfs to orbital AI to make this appropriate for Moderate
    • Reduced # of Dire guard posts on HW from 6 to 3
    • Reduced budget across the board by about 10%
    • Thanks to Dismiss and Sage for feedback on how to keep this a moderate AI type!
  • Fixed some destroyers having the wrong tech
    • Thanks to Sage for pointing this out!
  • Sapper turrets/ships with cloaking now all have an albedo of 0.7 so they are properly dealt with by their counters
    • Thanks to ptarth for pointing out this inconsistency!
  • Elderlings start out with additional Feeble Elderlings at intensities lower than 5.
    • This is to accelerate Essence accrual for these lower intensities
  • Redo how the Templar Initial Encampments spawn. Now each Templar Difficulty comes with a number of Initial Encampments to spawn (1 at >= intensity 5). When a new Rift opens, if it hasn't spawned enough initial encampments then we will choose an initial one.
    • This allows for the Templar to be made easier and more resource right at lower intensities.
  • Fixed the Brutal Darkness Guardian being completely immune to tachyon beams instead of resistant.
  • Nerfed the AI-Allied Sapper economy
    • Thanks to Strategic Sage for the balance feedback
  • The Necromancer game lobby hovertext now explicitly disavows support for Challenger+
    • We are only going to balance the Necromancer for HA
  • Fix a bug where Skeletons/Wights/Mummies weren't being properly counted in the tech menu when loaded into a flagship
    • Thanks to Daniexpert for reporting
  • Fix a typo in the skeleton decay description
    • Thanks to Ithuriel for reporting
  • Some improvements to the Skeleton Tip (explaining how decay/attrition works), and to the Elderling overview explaining the Madness mechanism in more detail
    • Thanks to discussions on discord including Ithuriel and others
  • Fix a bug where it was possible for an already-hacked Necromancer Amplifier to still be listed as a hack if you didn't have a flagship present
    • Thanks to Daniexpert for reporting
  • The build menu entries for things like Skeleton/Wight homes now correctly show the mark-level for the bodyguards they would grant
    • Reported on discord, I don't remember by whom
  • Nerfs to the Vanguard AI Type; it was too strong for Moderate
  • Fix a typo in a number of hacking options
    • Thanks to Ithuriel for reporting

Bug Fixes

  • Hopefully resolve the bug with the selection symbols not being correctly coloured.
    • Thanks to a number of people for reporting, including Zeus, Strategic Sage, Dismiss and Daniexpert.
  • Fix a bug where a player could hack an ODSS > 3 times.
    • Thanks to Peter Ebbesen for reporting.
  • Add a missing newline in the science sidebar hovertext.
    • Thanks to Ithuriel for reporting.
  • Fixed the bug that didn't show the "Transform Flagship" hack for Necromancer Flagships.
    • Thanks to ptarth for reporting.
  • Add some defensive code to the threat resource bar
    • Thanks to dismiss for reporting

Balance

  • Significant changes to the amount of speed various structures and overloaders hand out:
    • Logistic commands adjusted down to 130% base and +30% per mark level. Now cap at 310% at mark 7 instead of 550%. The first two upgrade ranks only cost 1500 each and get them back up to +190% speed at mark three.
    • Military commands instead now grant 300 flat speed plus 25 extra per mark. Makes slower ships respond faster without taking already fast strike up to speed caps.
    • Overloaders now grant 250 flat speed increase to allied ships. Roughly equivalent within a few percentage points for ships slower than 1000 naturally for the first couple overloaders but no longer multiplicative insanity at 3+. Now three overloaders is +750 speed instead of +174.4% speed.
      • Spire Relics capped at double base move speed. This is roughly equivalent to the speed you'd get previously with two overloaders and now can get with one. If you want more overloaders to make the Spire fleet itself faster that is one thing, but no longer heavily incentivized to overloader stack.
  • Speed cap adjustments:
    • Combat ships are capped at 3000 speed.
    • Transports are capped at 6000 speed.
      • With the revised logistic command speeds this means Agile stays quite relevant at lower levels of investment in logistic station tech. Regular transports only get close to the cap after four tech levels are purchased. The lower overall speeds make baiting harder and the AI tactic of trying to attack where your fleet is not more impactful. Its hard to make the AI seem smart when the player could just load up a transport and zoom over the highway at over 15000 speed to counter almost any attack directly.
  • A change to distributed economy power generation:
    • Previously too much power was granted from the asteroid power plants just by virtue of a station being an economic. No station upgrades required, and if the player does look at the upgrades its direct upgrades for high cheese. Namely that asteroids that are Mark 7 on an economic would grant 200,000 power each. The bonus for a station simply being economic has now been reduced from 4x to 2x. In exchange each mark level of economic stations in distributed is +200,000 power instead of +100,000 per mark level. This means the player will need at least a couple more power worlds on average instead of being able to hard pocket just a couple worlds that generate a few million or more power. And that just ignoring economic station tech isn't as feasible.
  • The ZA is not allowed to claim any of the DLC1 Dyson-style homeworlds in its Territory
    • Zenith Dyson Spheres were already protected
    • Thanks to TheIronBird on discord for reporting

Mod Updates

  • Updated the Exotic Ships Mod:
    • Removed the part of the description from the Flameblade Light Frigate that, to reload, it needs to not be in stand-down mode as this is no longer true.
    • Improved the Support Launcher Frigate:
      • The shield delivery capsules now always deploy a shield, even when getting destroyed by enemy fire.
      • Fixed the shield delivery capsules not seeking out targets on their own, requiring constant micro-management.
      • Doubled the radius of the shield from 1150 to 2300, and their base shield capacity from 100k to 200k, but now only one capsule is deployed every 30 seconds instead of 2. Additionally they now deploy at almost 4k range instead of just 1k, making them more useful for ranged attackers in the 2k-6k attack range bracket than for almost-melee ships only.
        • Thanks to motai for giving feedback.

4.016 Necromantic Polish

(Released April 11th, 2022)

  • Add a necromancer journal entry explaining about taking over guard posts
  • Modify some Showdown Device spawning logic
  • Adjusted AI Wormhole Projector and the destabilized version to have more unique icons selected.
  • Fix a fallen spire exception
    • Thanks to nas1m for reporting
  • Fix a typo in the skeleton/wight/mummy amplifier description texts
    • Thanks to Strategic Sage for reporting
  • A few beginner journals no longer fire for the necromancer
    • Thanks to Strategic Sage for reporting
  • Igors are now the default utility pick for the Necromancer
    • Thanks to a discord discussion
  • Fix a bug where loading ships into a flagship would cause the necromancer tech menu to miscalculate things
    • Thanks to Daniexpert for reporting
  • Necromancer Transformation hacks won't appear until you have unlocked some blueprints
  • A Nanocausted Elderlings spawns at 50% health for balance reasons. Elderlings were too powerful in the Nanocaust's hands
    • Thanks to zeus for the balance feedback
  • When the showdown battle begins, all guard posts now deploy their contents
    • Thanks to Strategic Sage for the report
  • Fix a typo in the Debauched Venators
    • Thanks to Strategic Sage for reporting
  • Fix a text error in the Transform Necromancer Flagship hack
    • Thanks to ptarth for reporting. Hopefully Thuvia is well
  • Add a BonusInitialEncampments option to the Templar Difficulty to allow for spawning more Templar Initial Encampments; these are weaker and grant lots of resources to the player
  • Add an AdditionalFeebleElderlings option for Elderling Difficulty; this is intended to allow lower intensity Elderling factions to give extra resources to the player
    • Untested, for zeus
  • Change the name/description of the StartWithAllUpgrades option for the necromancer
    • Thanks to a discussion on discord
  • Add some clarification about how resources are given on unit death for necrocromancers
    • Thanks to ptarth for suggesting
  • Add a new necromancer tip about clicking on the essence section of the resource bar to see how resources have been harvested
  • Player ships will try not to target a ZA Castra if it is being hacked
    • Thanks to Lord of Nothing for reporting
  • Remove any mention of Engine Stunning from the Black Widow Golem's description; the engine stun seems to have been removed at some point
    • Thanks to Ithuriel0 for reporting
  • The Sapper and Sapper Home models are a bit larger.
  • The Hack tooltip for a given Necromancer Upgrade now tells you how many times you have done this upgrade already
  • The "Cannot be supercharged" and "Cannot be buffed" parts of the Ship Class tooltip are now properly formated into the Ship Class line.
    • Thanks to Incognito for reporting!
  • Fixed a bug where the speed buff limit had an invisible +1000 added to base speed in code, and the XML for the sample base ship class now shows this XML field to remind everyone it exists and can be used.
  • Fixed the formating for buff limits so that they now correctly show without disrupting everything behind them.
  • The Corrosive damage tooltip on weapons doing it now explains what it does.
    • Thanks to StrategicSage for requesting. This was originally on the tooltip of a ship suffering this type of damage, but has no been moved to the weapon itself.
  • Attrition, Electrotoxic, Revenge Shot (both percentual and fixed-damage-returning) and Ion damage now all have the same, color-coded info that these damage types are considered exotic damage.
    • Thanks to Mac for requesting.
  • Engine Slows now are in the speed debuff category, instead of general debuffs.
  • Flat speed buff capabilities for planetary buffs or debuffs:
    • Units can now have planetary speed "boosts" for allies and enemies that are <1 (but still >0).
    • Units can now have flat positive and negative speed boosts for allies and enemies, using the new XML fields allied_speed_flat_bonus, allied_speed_flat_bonus_added_per_mark, hostile_speed_flat_bonus and hostile_speed_flat_bonus_added_per_mark.
    • The game will throw an exception if a planetary multiplicative speed buff goes below 0.
    • Planetary damage and speed buffs are now cached, which means that they should never "flicker" when viewing tooltips or jerk ship movement.
  • Speed Caps are returning to the game after having been deleted without replacement. These only apply to the player, and get fixed to their defaults at Challenger or above. Combat ships can at most reach a speed of 3000, and non-combat ships 4500.

Necromancer Tip Reminders

  • Every 5 minutes, if a Necromancer has not looked at any Tips in the sidebar, they get a prompt reminding them to look.
    • This reminder can be disabled with a setting under Game/Tips
    • This should make it harder for players to miss all the Tips that have a lot of gameplay instructions
  • At the start of the game, the player gets a popup saying "The Necromancer is its own thing; change your expectations. And look at the Tips sidebar"
    • This reminder can be disabled with a setting under Game/Tips

4.015 The Thrifty Architrave

(Released April 7th, 2022)

  • Fix a bug where necromancer flagships could be incorrectly denied transformation
    • Thanks to Strategic Sage for reporting
  • Fix a bug where necromancer-owned guard posts were inadvertently counted in the counterattack notification
    • Thanks to Strategic Sage for reporting
  • The Mummy tech upgrade only appears if you have Mummies
    • Thanks to Strategic Sage for reporting
  • Some tweaks to the necromancer journal, and remove the "Modify starting hacking/science/metal" fields for the necromancer
    • Thanks to Strategic Sage for reporting
  • Fix a bug where the ZA was unable to make ships
    • Thanks to zeus for reporting
  • Neinzul Youngling Fireflies now gain weapon points on firing their main weapon, and their on-death lightning blast now spends those points to deal increased damage.
  • We no longer show a traditional X/Y cap in the unit hovertext for many necromancer units, since they don't use traditional caps
    • Thanks to Strategic Sage for reporting
  • Fixed the credits for the DLCs being mangled and cut off in the last few builds.

Two New Mods

  • New mod by... Chris! Requires DLC3:
    • Paladin Transports Mod
      • Allows you to change the basic colony-ship style transports to instead be a cool white paladin transport.
      • This is a visual-only mod, so you can turn this on without other players needing to have it on in multiplayer. This affects how ALL transports look in multiplayer, not just your own. Other players will see the default colony ship visuals unless they also enable this mod, so it's purely a matter of personal taste for each player.
      • The "paladin transport" visuals were a happy little accident that came about during DLC3's development, and we didn't know quite what to do with them at first. Badger suggested this, which was a great idea, and here we are!

PaladinTransportMod.PNG

  • New mod "ExpertMinusScaling" by Donblas:
    • This mod modifies Expert mode to re-enable "Fleet Wide Bonuses", which are ships from Fleet Research Stations (FRS).
    • While re-enabling them does increase the players power in Expert mode, some find building fleets without them much less interesting.
    • Resulting games are "Expert-" in setting, more restricted than "Challenger" but less than a full "Expert" game.

4.014 The Intimidating Architrave

(Released April 6th, 2022)

  • The new AI eyes (dire and regular) in DLC3 now have a new style of visual that is distinct to DLC3.
    • This is finally now the end of the art for DLC3, for real!
  • All of the Zenith Architrave units in DLC2 now have real graphics, and are much larger and more menacing. This is now one of the more visually striking factions.
    • Thanks to everyone for their patience with the DLC2 art delays! That is finally absolutely the last of it, so all of the art that is planned for the game is now complete!
  • Add some defensive code for MP clients
  • Remove some mentions of the sadly-deprecated Vassal code
    • Thanks to Strategic Sage for reporting
  • Fix a typo in the neinzul migrant description
    • Thanks to Strategic Sage for reporting
  • Add a bit more colour to the Module Popup
  • Fix a typo in the roguelike 'swap planets' option description
    • Thanks to Mac for reporting
  • Update the Enhanced Overlord description to explain some of its behaviour
    • Thanks to Mac for reporting
  • Update the Challenger description for the base game to not mention Brutal Guardian Lairs (since those are DLC3 only)
    • Thanks to Strategic Sage for reporting
  • Fix a typo in the Hugger golem description
    • Thanks to Ithuriel0 for the report

4.013 Hotfixes

(Released April 6th, 2022)

  • Fixed an exception on load in the prior build if you had DLC2 but not DLC3 enabled.
    • Thanks to Peter Ebbesen, Ithuriel0, and Smithal for reporting.
  • Fixed an exception that could happen during loading certain quickstarts, or probably other lobby initialization situations as well.
    • Apparently also when generating maps in the lobby for some players!
    • Thanks to rem_tuas and Ithuriel0 for reporting.
  • Fixed a typo in the Architrave Eques description.
    • Thanks to Ithuriel0 for reporting.
  • Fixed an exception that could happen after hitting reset to defaults in the lobby now that it is checking for re-pooled game commands. The game command in question was redundant and served no purpose at this point anyhow, happily.
    • Thanks to Badger for reporting.
  • Adjusted Dire CPAs to no longer be forced on until Logistician mode, rather than being forced on in Expert mode. They are still optional in any lower mode.
    • Thanks to Strategic Sage for suggesting, and for being patient with our second-guessing of him on it.

4.012 The Zeusathon

(Released April 5th, 2022)

  • The Hunter Fleet is capable of getting into a really funky situation where the minimum size for a fireteam to activate was an incredibly large number. I don't know why this happened, but I've put some code in to help it escape, and also left in some active debugging in the hopes that next time someone hits this we'll see what happened.
    • Thanks to Lord Of Nothing for reporting.
  • The remaining Necromancer flagship art from DLC3 is now in place.
  • The remaining DLC2 Dark Zenith placeholder art is now actually cool direct art.
    • Same for the remaining DLC2 scourge units.

DLC2

  • Made the ZA much less likely to sideswipe the player during a civil war
    • Thanks to Lord of Nothing for reporting
  • Fix a bug where the ZA weren't spawning their Golems
  • Add some defensive code to the Border Aggression deepinfo
  • Hoplomachus now cost the AI more, to be in range of Dire Guardians
    • Thanks to Lord Of Nothing to pointing this out!
  • Added a new scaling to the Architrave (applicable to guardian - Golem tier units). Damage peaks at x4.5 and health peaks at x6.5
    • This is a defensive faction so they now have a scaling to reflect this. Before, many of their units were using the guardian scaling, with is basically x10 to damage/health at Mark 7... this was way overkill
  • Added a new scaling to the Dark Zenith (applicable to guardian - Golem tier units). Damage peaks at x6.5 and health peaks at x4.5
    • This is an offensive faction so they now have a scaling to reflect this. Like the ZA, many of their units were using the guardian scaling so this is a nerf overall
  • Jormugandur now regenerates to full health, assuming 1 health remaining, faster, from 30 minutes to 10 minutes
    • This is the supreme DZ unit and needs to reliably be able to retreat and heal up
  • Reduced Bolas (ZA) and Harpoons (DZ) speed from 2,200 to 1,600
    • These should be dodgable by flagships, else these just shut you down to easily

DLC3 Balance

  • Increase interval frequency of Templar Waves and increased their base strength
    • Harder and more frequent Templar waves are also more reliable farming for science/hacking points
  • Templar units now grant much more science and hacking than they were previously
    • Strikecraft units from 2 science to 3 science
    • Guardian units from 6 science to 9 science
    • Encampments/Fortress/Castles from 5 hacking to 7 hacking. Science increased to 500 (for all)
    • Constructor grants 1000 science (from 500) and 25 hacking (from 10)
  • Reduced the number of drones produced by the Neinzul Nest/Cluster (For the Neinzul Enthusiast AI type). Also tripled health
    • This is more for performance reasons than anything else. They just flooded too many units
  • Zenith Architrave Castra now grants science/hacking to necromancer
  • Flagships obtainable from rifts need a min. mark of 2 to transform from 3
    • These are weaker than the Elderling Flagships so this change is to make them more appealing
  • Unyielding Flagship speed increased from 1,000 to 2,200 to match others
  • Rift Flagships now all have their modules. They were missing a tag

Mod Updates

  • AI Shield Generators mod
    • Updated the xml to make Shield Generators unable to be captured. This was always intended to be the case but was missed from the xml for the new version of the mod.
    • Changed the Shield Generator and Core Shield icons to take advantage of the new icons (They are now using Ships3/SomethingTurtleShield).
    • Core Shields are no longer shown on the Galaxy Map. The player already knows where they are and they cannot move, so they were just adding unnecessary clutter. Shield Generators are still shown as normal.

4.011 Multiplayer Stability

(Released April 4th, 2022)

  • Update the City Mechanics journal for the spire to mention some building restrictions
    • Suggested by Peter Ebbesen
  • The DLC3 factions now all have icons in the game lobby
  • Added new force_gravity_well_size_of_planet_to_be_at_least and force_gravity_well_size_of_planet_to_be_at_most features, which allow a unit to force the gravity well to be within a certain size range. If it is shrinking the gravity well, then it scoots all the wormholes and ships inward at the percentage they were from the older larger size.
    • This is now used by the Templar Sovereign to make sure that the planet it is on always is in a certain size range so that its orbitals are neither way out of the grav well, nor way into the grav well in a way that defeats their purpose.
    • Thanks to zeus for sort of requesting.
  • After discussion on mantis, two of the AI types have had their difficulty reclassified. Swarmer has been demoted to Hard (they are on the border between Brutal and Hard), and Spire Hammer has been promoted to Brutal (they again are on that same border).
    • Nothing is changed with these AI types in their actual function or balance, but it was agreed that these labels represent them better.
    • Thanks to Ecthelon, CRCGamer, Lord Of Nothing, and Strategic Sage for the discussion.
  • The mark level of each spire city is now shown, in proper color, at the end of its name now.
    • This makes it way easier for people to find their more important cities, especially if they're coming into an unfamiliar save.

Bugfixes

  • Fixed an issue with sliders where tooltips could be placed over top of the number to the right of them.
    • Thanks to Glyoxim for reporting.
  • At last, seem to have fixed a general multiplayer error that was initially having clients get "corrupted seeming" game commands, but really was a matter of those having been partly put back in the pool already. Essentially this was a client-only threading issue, and related to how we used a pair of rotating queues.
    • Instead of using a pair of rotating queues, it now uses a single queue, and then a feeder working list, and this dodges the timing issues entirely (and is just as efficient).
    • This particular bug was what was causing the flood of errors on some MP clients some of the time recently (the flood of errors was actually good, because it meant that we were finding out about the issue rather than executing malformed gamecommands).
    • Apparently this could also lead to a rare nullref in single player.
    • Also this could cause one in the lobby reset to defaults, wow.
    • Thanks to ptarth, Cyborg, xaid, Badgerm, Lord of Nothing, and Eluthena for reporting.
  • Fixed an issue where Expatriate tech and similar would not be applied to allied factions until you paused the game.
    • Thanks to Incognito and LordNSR for reporting.
  • Fixed threading errors that could happen in PrepareConflictPlanetMovementLogic.
    • Thanks to gekko for reporting.
  • Fixed what was apparently a super rare exception that could happen inside our forcefield rippler code.
    • Thanks to habakuk for reporting.
  • Fixed a number of places in the code that were calling a non-threadsafe for-ui-only method on fleets, which has been renamed to be even more clear it should never be called except from the UI.
    • Also hardened that code a bit for threading errors just in case.
    • The alternative code, which is what was supposed to be called, now is -- and that's much higher-performance code in general, so makes a few parts of the sim, autobuild, and otherwise all faster.
    • Thanks to habakuk and slake-moth for reporting.
  • Fixed an exception that could happen in PrivateNomadPlanetNotifier.
    • Thanks to Dismiss for reporting.
  • Fixed an error popup that could happen when you exited from the lobby during a mapgen process (either if your timing was just wrong, or you hit the escape key really quickly after loading in).
    • Thanks to Dismiss and Eluthena for reporting.
  • Fixed a bug where icons under planets in the galaxy map were not drawn after reloading a save, or a similar save from the same campaign, more times.
    • Thanks to slake-moth and Daniexpert for reporting and to Daniexpert for the major debugging to find it.
  • Added a new feature where certain NPC ship caps can be told to no longer show visible warnings to players. The cap still serves a purpose, as it causes stacking and condenses units around, etc, but it won't warn the player that something is "wrong."
    • This should be used sparingly, mainly for categories where we really don't consider it wrong at all, but just would like to have a soft cap that causes things to condense as they can.
    • Most notably, this is used for the drones category now.
    • Thanks to Lictuel for the most recent report.* Added a new feature where certain NPC ship caps can be told to no longer show visible warnings to players. The cap still serves a purpose, as it causes stacking and condenses units around, etc, but it won't warn the player that something is "wrong."
    • This should be used sparingly, mainly for categories where we really don't consider it wrong at all, but just would like to have a soft cap that causes things to condense as they can.
    • Most notably, this is used for the drones category now.
    • Thanks to Lictuel, Detlef, and henry700 for the most recent reports.
  • 18 different quickstarts have been updated to have the proper factions that they were supposed to have, after their initial setups had been messed up a bit.
    • Big thanks to gekko for going to all that trouble and also getting those all fixed!
  • We already had a dies_if_parent_dies tag in DLC3, but now we also have dies_if_parent_is_dead_or_remains.
    • This is applied to all of the various necromancer orbs, and if their ancestor has been turned to remains (rather than outright death), then the orbs also still die. Tested and works.
    • Thanks to Daniexpert for the initial report and save, and to zeus for the new feature request.
  • If a player's king is missing, it no longer throws errors when evaluating if journal entries should be logged.
  • Fixed a frankly insane bit of VERY old code (it was mine) that would delete fleets that were missing their centerpieces for whatever reason.
    • This could lead, in some super rare cases, to the centerpiece for an ark empire not being found, and it then just deleting your king unit and all the related units in its fleet.
    • Additionally, fixed a related bug where it home arks were the one kind of centerpiece that could not self-repair when their fleet had lost a reference to them.
    • Thanks to Glyoxim for reporting.
  • The warden is no longer allowed to path through it's Target planet to get to its Lurk planet
    • This was causing the warden to just trickle into a fight where it could be dispatched piecemeal; this was a regression caused by some changes to make the warden have more "friction" wit the player. Ordinarily more friction is fine, but it shouldn't be quite so oblivious
      • Thanks to Dismiss for the bug report
  • Fixed an issue where traditional-style ship cap scaling was being applied against the fallen spire city buildings when it should not have been, thus leading to inflated counts.
    • Thanks to Lord Of Nothing for reporting.
  • No units have displaces_other_ships_giant_tier anymore.
    • This mechanic tends to make ships invulnerable to short-range units, which is really frustrating for pretty much anything. This was an interesting experiment, but didn't pan out.
    • Thanks to Daniexpert and Zer0h1nder for reporting.
  • Exo strikes are no longer ever able to show negative percentages complete.
    • This was happening when they were syncing with CPAs or wormhole invasions, and waiting for something like that.
    • Now when it's going to sync like that, it just waits at 0% charged for a long while, and then starts counting up once the sync is ready.
    • Thanks to GreatYng, Daniexpert, henry700, and samnainocard for reporting.

4.010 Iconucopia

(Released April 3rd, 2022)

Icons

  • All of the remaining icons and overlays for DLC3 have been created and added in.
  • Overlays for all ten arks (from the base game and DLC1) are now in place, making it possible to differentiate them while still keeping their central icon.
    • Thanks to Badger for suggesting.
  • A whopping 357 new icons for modders have been added to Ships3 and Ships4. These all start with Emblem[X] or Something[X].
    • This is more than the total number of icons in the base game and any single DLC, so this is a pretty huge boon for modders going forward.

Balance

  • It was noted in the Discord that while Persuaders are indeed more durable than Parasites their cost per ship hadn't properly been increased in a previous patch that cut the line counts. And they had a text description about being expensive.
    • Persuader metal and energy costs per ship are now set to be four times higher than previous values.

DLC 1

  • Spire Debris from the Spire Infused Empire can no longer be scrapped
    • Thanks to Lord Of Nothing for reporting

DLC 3

  • Added a new starter fleet -- the "Warded Fleet"
    • Features the Repulsor ward, along with the Samurai Frigate, Corrosive Frigate, and Mosquito Corvette
  • Galactic Control Ships (Triggered by Showdown Device) now emulate Classic by ravaging planets on death
    • diff 1-4 no ravage
    • diff 5-6 ravage planet
    • diff 7-10 ravage planet and adjacet planets
  • Necromancer Flagships now have Modules! Up to 9 options:
    • Enhanced Hull: 2 points -- 50% more hull
    • Enhanced Shields: 2 points -- 50% more shields
    • Forcefield: 4 points -- Gains bubbleshield
    • Tractor Beams: 2 points -- Gains Tractors, increasing with Mark
    • Gravitic Core: 4 Points -- Gains large radius gravity effect, slowing units by 30%
    • Decloaking: 1 point -- Gains Decloaker
    • Cloaking: 4 points -- Gains Cloaking
    • Anti-Shield Plasma Bolt: 3 points -- Gains weapons the excels at killing bubbleshields
    • Fusion Bomb: 3 points -- Gains anti-massive weapon that bypasses shields
  • Necromancer Necropolis/Phylactery now have modules! (Known bug with the module button not appearing)
    • Enhanced Hull: 2 points -- 50% more hull
    • Enhanced Shields: 2 points -- 50% more shields
    • Forcefield: 4 points -- Gains bubbleshield
    • Gravitic Core: 4 Points -- Gains large radius gravity effect, slowing units by 30%
    • Rail Cannon: 1 point -- Sniper weapon with increase salvos per mark
    • Repulsor Rocket: 1 point -- Knockback rockets that do bonus damage to ships immune to knockback.
    • Summon: Caged Skeletons (Drone Gun): 3 points
    • Summon: Mummy Minions (Drone Gun): 5 points
    • Summon: Bone Dragon (Drone Gun): 7 points
      • Necropolis/Phylactery Modules that summon stuff now have a min. mark to function
  • Increased the essence cost of upgrading Necromancer units
    • This is mostly targeted at Mark 4+. In the late game, there's a lot more Essence to harvest
  • Removed AIP penalty from the Neinzul Nest and Neinzul Cluster
    • Player ships will automatically attack these so this needs to be removed
      • Necropolis/Phylactery base stats reduced to compensate for modules
  • Increased the bodyguard count of skeletons and wights
  • Increased the cap size for rift hacks (e.g., increase Fleet X's max cap of ravenous wights from 4 to 12)
  • If the Necromancer is not present for a unit kill that would grant resources to the necromancer, if the kill was done by a non-Necromancer human the necromancer gets 30% of the resources they would have gotten; If the kill was done by an NPC ally, the necroancer gets 75% resources (in either case you get any Upgrades you would, like from a transformed elderling).
    • Thanks to Dragoris for reporting
  • Tidy some Sappers code a bit; fix a typo when calculating beachhead structure limits. Add some debugging code for showdown seeding
    • Big thanks to Puffin for the observation!
  • Encampments and Fastnesses now need to go up to mark 7 before they change form
    • Thanks to zeus for noticing
  • The necromancer's 'transform flagship' hack now has better UI
  • Fix a bug where we were could transform the wrong necromancer flagship
    • Thanks to Keith C. for reporting
  • Necropolises/Phylacteries now have a 'Spend Modules' button in the fleet menu
    • Thanks to Zeus for reporting

Bugfixes

  • Removed an old text reference to reduced damage for units firing from under forcefields from the Siphoner Frigate. As it inherits properties from the base Forcefield Frigate this hasn't been true for a long time.
  • Fix a bug where the Border Aggression budget was never being reset to 0 after launching an attack; the budget was purely cumulative over time. This would lead to really huge border aggression assaults in long games.
    • Thanks to Velius for reporting.
  • Add some debugging code to help diagnose a rare exception in the Build menu.
    • Thanks to habakkuk for reporting.
  • Improve the description for the Orchid Ark.
    • Thanks to Glyoxim for reporting.
  • The game no longer plays "forces in combat" voice lines when the game is paused.
    • Thanks to Ithuriel0 for reporting.
  • Fix a typo in the "Using Nukes/EMP is considered cheating" descriptions.
    • Thanks to cml for reporting.
  • The tooltip for hacks on planets controlled by hostile minor factions now correctly reflects the fact that it is considered a "hostile planet".
    • Thanks to motai for reporting.
  • Add some defensive code to ClearPlanetLooseStuffAndSpecialEffects().
    • Thanks to slake-moth for reporting.
  • Add some debugging code to DoOnDestructionLogic for MP client problems.
    • Thanks to Alivaril for reporting.
  • Add an Advanced setting to the Autosave category to create a 'campaign start' save. The goal is to make it easier to make quickstarts.
    • Thanks to trabbo for suggesting.
  • Fix some typos on ethereal cruiser description and some unit hovertexts.
    • Thanks to Zer0h1nder for reporting.
  • Padded a potential out-of-range exception in the autobuilding code.
    • Thanks to habakuk for reporting.
  • While testing, found and fixed a bug where autobuilding counts from a previous entity type could transfer over to the current setting (i.e. if the player only has 5 tritium sniper turrets, but 10 spider turrets, then the code would built only 5 of each and live the remaining 5 spider turrets unbuilt).
  • Entities with weapons will now reload even while in hold-fire mode. This ensures that their weapons are fully ready when they are allowed to attack again.
    • From a conversation with Ithuriel and Dismiss on Discord.
  • Add a 'wait for stragglers' variant that works on all planets, not just friendly planets.
    • Thanks to ToastTheSniper for reporting.
  • Fixed a small XML typo that caused the CivilAuthorityRepaymentMultiplier to default to 1x when the campaign was set to Expert+.
    • Thanks to Peter Ebbesen for reporting.
  • Fixed an error with xml inheritance that could happen with certain kinds of ship setups.
  • Fixed a typo with Civilian Authorities Total Metal counts that made those appear 10x greater than what they actually were.
    • Thanks to Lord Of Nothing for reporting.
  • Savegames should again load properly.
    • Thanks to Lord of Nothing for the report, and CRCGamer for the fix.

Mod Returns: Core Shield Generators, by cml

  • Updated AI Shield Generators mod.
    • The new version of the mod functions differently to the old version. Rather than adding a faction for each Shield Generator network, each AI faction has options which allow for up to three networks to be created.

4.009 Architrave Taming

(Released March 31st, 2022)

  • The ZA can only build defensive structures once every 10 seconds
    • Thanks to Dismiss for suggesting
  • Description updates to the Ultimate Fortress (and Towers), and more recognizable overlay. Now shows up on the galaxy map

DLC3

  • Fix a typo on the necromancer resources journal
    • Thanks to vinco for reporting
  • Fix a bug where you could do necropolis movement hacks even w/o enough essence
    • Thanks to zeus for reporting
  • Templar scaling reduced so they peak less than default scaling
    • Templar eventually (in the late game) are pretty much sending only mark 7 units so these are tuned down so a late game necromancer fleet will compete
  • Reduced the orbital speed of the Treacherous Totem's orbs, so enemies don't chase them endlessly
  • Adjustments to Templar hacking/science bounty
  • Adjustments to AI structures hacking bounty
    • Generally, nasty picks give more than they were before so they are more impactful
  • Tweaks to Wave Leaders stats to compensate for the new scaling
  • New (temporary?) icon for the sovereign. Looks pretty cool but possibly used elsewhere (Shipgroups4/SomethingNeinzul3)
  • Added another 48sih pieces of art, which pretty much completes the non-icon portions of the DLC3 art.
    • We are still using some duplicate graphics for some of the necromancer flagship variants, but everything else is done!

Balance

  • Corrected a number of issues with AI Spire ship assets. This is part of DLC1 that gets used by some AI types in DLC2. Most notably Spire Hammer and Jabberwock.
    • Practically every AI version still referenced the original ship instead of the non-modular xBase versions put in place when modules were deployed to player versions of the ships.
    • Several missing beam weapon color attributes were found and corrected. Previously slid under the radar because they were inheriting from the player versions.
    • AI Spire Dreadnought now correctly just has a couple big bad coilbeams that only fire once per cycle instead of one of them being a Rube Goldberg monstrosity firing twenty coilbeams once a second.
  • Fixed an issue with the AI Ultimate Fortress spawning one of its sub-units every three seconds instead of once every thirty minutes.
  • Upped the seed weight of the Black Widow golem. It was originally massively reduced since it always had a chance of showing up in early officer spawns. But with those spawns being locked behind lower difficulty AIs having it about seven times rarer than a Regenerator golem was uncalled for.

Mod Updates

  • Update for More System Defenders:
    • Most of the added guardian units had their AI purchase prices revised upwards.
    • AI Artillery Destroyer has had its hull health raised to be four times higher than previous.
    • AI Artillery Destroyer also has had its main gun base damage cut by about 20%
      • The fact a blob of them at mark 7 had an alpha damage of one million versus ships of frigate size or larger per ship the AI sent out was leading to some interesting "vanishing" of entire Spire fleets. The AI purchase price being raised as well should lead to these taking a little longer to kill individually but coming in numbers only about 2/3 as much as previously.

4.008 Exogalactic Wayfinding

(Released March 25th, 2022)

DLC3

  • Vengeful Wight copies (the bodyguard and the revived) now use the vengeful wight base unit instead of the spectral wight
  • Defensive Necropolis no longer buffs damage
    • These will get modules instead
  • Templar Seneschal single target paralysis now hits mass less than 7tx instead of 8tx
    • These were just too obnoxious when paralyzing your flagships and bone dragons.
  • Fix a bug with the tooltip for some Maddened Elderlings
    • Thanks to zeus for reporting
  • Added a "corrosive finale" to the Corrosive Guardian/Guardpost. When these units die, they do one last AOE blast centered on itself to spray corrosive damage. Adjusted these both to specialize against low armor units
  • Added orbital versions of the Corrosive Guardpost
  • Plagueswarm Elderling/Flagship (and their children) now do corrosive damage (DOT)
  • Remade the Chain Lightning Frigate into the Corrosive Frigate
    • Needed to have this new weapon mechanic show up for normal human games and this splash frigate was the logical choice
  • Increased hacking bounty from Templar Structures
    • Noticed my hacking points were actually overly limited! No more drowning in hacking points, so increased the value of these
  • Templar Sovereign now takes 45 minutes to build a Runed castles (instead of 2 seconds)
    • Forgot to change this back after testing this mechanic
  • Increased the Skeleton/Wight/Mummy amplifier to have a bonus chance to create another one to 35/25/15 (from 10/10/10)
    • These amplifiers were just not that enticing at a mere 10%
  • Bone Dragons C.Lightning now hits all mobile ships instead of only strikecraft and frigates
  • Weak Skeletons harmonic max damage cap reduced by half
  • Another huge batch of DLC3 art is now completed and integrated. In all it's about 70 pieces.
    • All of the remaining Templar units are in place (except the hospitaller, which is temporarily using another ship's graphics).
    • All of the venator untis are in.
    • The migrant wormhole.
    • Showdown device.
    • All of the brutal guardians and their related devices, etc.
    • All of the destroyers.
    • All of the new strikecraft and frigates.
    • All of the new AI nasty picks.
    • In general there are still 107 items to do, 59 of which are for DLC3. So this was a solid 40% or so of the remaining work for all this! (These numbers don't quite match yesterday because some things got added).

Bugfixes

  • Fixed a bug where Exogalactic War Units would wind up getting diverted to the wrong targets
    • Thanks to a number of people for reporting, most recently Lord Of Nothing
  • Hunter Fleet ships are less likely to attack ZA Core Territory unless they have specific orders to do so
  • Adjust some zenith miner tooltips
    • Thanks to henry700 for reporting
  • Remove a few mentions of the now-deprecated Lone Wolf concept
    • Thanks to habakuk for reporting
  • Remove a restriction that prevented the player from moving a miner probe onto a player-owned planet. This allows players to shoot themselves in the foot (or grief eachother during MP)
    • Thanks to Zer0h1nder for reporting
  • Fixed a bug where a wave would spawn on its home world instead of the expected planet.
    • This could happen only in games with 2 or more AIs. In more detail, when a wave from one AI was planned to spawn on another AI's planet, it would fail a check to find such planet and therefore default to spawning on its home world.
    • Thanks to Velius for the report and the saves.

4.007 Balance And Tuning

(Released March 24th, 2022)

  • Added a new LogChanges bool to our List<> class, with a related string ListNameForLogChanges field.
    • This can be set to true on a given list in the codebase, and then it will spit out any and all changes that happen to it, with full stack traces, so you can figure out why your list is changing and from where it is being changed.
    • This is very heavy, so should probably only be used on a list or two at a time, and of course only in code during a debug mode.
  • Lots of DLC3 art has been completed! 57 pieces in all.
    • This completes all of the "wards," and almost the remainder of the necromancer units (there are still a few flagships left for them).
    • There are still 162 pieces for me left to do, 47 of which are are for DLC2, and then 183 remaining icons for DLC3. So this was a solid chunk, but there's more to come very soon. It's getting time to make a trailer and screenshots, etc. And release is only a month or so off now!

Balance

  • Way back in 3.776 Raiders were supposedly updated to 20 engine power to make them black hole immune. Well turns out they as a group were still sitting at 18 gX. Instead the lowly Stingray which isn't even a Raid type unit got the buff.
    • Raiders and variants actually buffed to 20 gX engine power.
    • Stingray and variants restored to 14 gX engine power where you can actually CC them.
  • Due to newer player confusion with descriptive text the Shieldwall Battlestation mark scaling damage resistance has been revoked. Instead it has been given a custom stat scaling entry and has its shields eventually hit 6x base XML value at mark seven. Effective health is essentially unchanged.
    • Shieldwall mark 7 max shield health: 5m -> 7.5m
    • Damage resistance: 10-34% -> 0%
  • Previous lone wolf officers not having a weapon timer on loaded ships now corrected. Lone Spire Frigates and a few golems now properly enforce six second weapon safeties.
  • Ultimate Fortress update
    • Fixed a broken tag with the Ultimate Fortress so it can now properly spawn the Sabot Tower variant
    • Reduced the orbital speed of the Towers so players can actually focus fire Towers down one at a time
  • (DLC2) Swapped targeting logic for player version of Raijin Golem Chain Lightning weapon from only targeting strike and frigates to only targeting mobile units. Guardians are now on the menu.

DLC 1

  • Changed behaviour when hacking for Spire Debris. Now when hacking a debris, its countdown will be paused for the duration of the hack and will resume if the hack gets cancelled.
    • Thanks to Ecthelon for the report.

DLC 3: Necromancer

  • Adjusted the ship caps of the Necromancer's defensive structures so there's no more scenarios of having a larger cap of a defense structure compared to the available hexes
    • Cap sizes of defensive structures have been adjusted accordingly, but not uniformly.
  • Necromancer's Lightning Tower now does paralysis. 1 sec per mark (max 7 sec) to ships with mass <= 2tx. They also start with a cap of 5 to make use of their harmonic bonus sooner.
    • Also increased range by about 20%
  • Minor buff to the Necromancer Shipyard. This now has a flat cap on 1 per necropolis
    • Getting more of these is a trap, so this cap is now 1. But it's still a good value on planets where you need to reinforce your fleets
  • Fixed a copy/paste issue where certain Elderlings (the Envious and Blasphemous) were transforming into the wrong sacrificial form, preventing players from getting the unique flagship transformation
    • Thanks to Daniexpert for the save
  • Skeleton Lord home nerfs:
    • has lower chance of creating a lord. From 5% to 2% (per home).
      • Unlike other skeleton homes, you get 3 of these per rift (but need a mark3 necropolis/phylactery to build). You could end up getting far more lords if you specialize, to the point this was too strong
    • Reduced the bodyguard cap from 3 to 2
    • No longer gives a small chance of creating a free skeleton--this is the feature of the amplifiers and is too opaque when added here
  • Increased the cost of Essence to upgrade flagships and Necropolis
    • There is much more essence now with the Elderling change, so this was needed
  • Dramatic increase to science upgrades for all necromancer techs
    • There's just too much science in Necromancer games. Tech should be interesting decisions, not just "get everything"
  • The Templar now spawn their Sovereign
  • Fix a reference to the now deprecated skeleton detonator
  • I've added a new field for the XML templar difficulty HackingPointsSpentPerBonusWaveLeaderFromHack
    • This defaults to 100, and allows the strength of hacking responses to be tuned via XML.
    • Wave Leaders from a hack response are determined by AIP and hacking points spent
  • Only low tier wave leaders can spawn from an Encampment
  • Only low/mid tier wave leaders can spawn from a Fastness
  • The number of templar wave leaders from a hacking response is now more tunable (the hacking points spent component can be tuned via XML).
  • Add scaffolding for spawning different units from a hacking response, though this is waiting for zeus to do a bit of XML
  • When a templar unit is spawned, it uses the following additional rules when choosing its mark level
    • MinUnitMarkLevelLowTier = 1; //encampments
    • MaxUnitMarkLevelLowTier = 3;
    • MinUnitMarkLevelMidTier = 3; //fastnesses
    • MaxUnitMarkLevelMidTier = 5;
    • MinUnitMarkLevelHighTier = 3; //castles
    • MaxUnitMarkLevelHighTier = 7;
      • These are the default values, but they can be tuned in the TemplarDifficulty XML (so MaxUnitMarkLevelHighTier could be 5 on low difficulties)
  • Showdown Devices now play nicely with the Necromancer
  • The Wave Leaders from a hacking response wave are now the new variants from zeus

DLC 3: Elderling

  • Decadent Elderling/Flagship now hit 10 units with Devour, up from 1
  • Lowered number of Elderlings needed to trigger madness across intensities.
    • Still experimenting around, but these changes should definitely make madness happen regularly
  • Essence granted from Elderlings has a reworked scaling so that the value no longer goes down after an evolution. The next tier of Elderlings will now continue where the previous (mark 7) Elderling left off
    • Low Tier: 3 / +2
    • Mid Tier: 15 / +2
    • High Tier: 27 / +2
    • Will watch to see how much Essence player now has access to. Will likely need to balance this by increasing costs associated with Essence
  • Adjustments to Elderling intensity settings, including reduction of time low tier Elderlings need to level up

DLC 3: Templar

  • Adjustments to the Templar intensity settings
  • Templars now have their own mark scaling.
  • Templar Wave Leaders had stats reworked so they can scale with mark level
  • Made the evolution of Templar structures more straightforward. Encampment->Fastness->Castle (This is the same). With each evolution, the structure gets an additional weapon. So the Castle has all the weapons of the Fastness/Encampment along with a new weapon
  • Templar Herald adjustments reduced science/hacking bounty by half
  • Templar Prophet reduced science/hacking bounty by half
  • Templar Harbinger adjustments Reduced science/hacking bounty by half
  • Templar castles now take longer to upgrade across all intensities

Bugfixes

  • Reduced Dyson Sphere's selection circle size to improve user experience.
    • Thanks to Eluthena for the suggestion.
  • Fixed a race condition in Splintering Spire that could cause all dismantling timers to reset when loading a save
    • For future notes for both myself and modders, Stage 2 logic is not guaranteed to wait until all deserialization is completed before running
      • Thanks to Lord Of Nothing for the report
  • Fixed a bug that didn't allow the player to change music from the debug menu.
    • Thanks to Democracy for the report.
  • Fixed a bug that allowed players to discover centerpieces hidden in unexplored planets.
    • Thanks to Eluthena for reporting.
  • Disabled navigation to unexplored planets via wormholes when the "Hide Unexplored Planets" setting is enabled.
    • Thanks to Eluthena and Sounds for the report.
  • Fixed the tracing and memory leak with the ArcenCharacterBuffers in AIRelentlessAndBorderAggressionFactionDeepInfoRoot that caused an error spam when using RelentlessWave tracing.
  • Fix some bugs with the intel menu showing incorrect data for the superterminal, and too many MDC objectives
    • Thanks to Lord Of Nothing for reporting
  • Minor tweaks to Wait For Stragglers mode; it no should no longer wait for Drones or the like
    • Thanks to Jason Nelson for reporting

4.006 Careful Of That Federation!

(Released March 16th, 2022)

  • If a scourge nemesis finds itself in a Defensive Fireteam, the fireteam will now disband so the nemesis can be used on offense.
  • The Gyrn, Voidhome Ark Empire version of that ark now generates 750k energy rather than the usual 350k that other arks do. This is part of its identity as an ark.
    • Thanks to Zer0h1nder for suggesting.
  • Remove the 3 AIP penalty for losing fuel stations
    • At Sage's request
  • The Placement Condition framework has been overhauled to be more condensed and moder, and the Multiple-Point variant is pooled to counter memory leaks.
  • Added in a new utility function to Factions, GetIsFriendlyToAnyPlayerFaction, which does what it says on the tin.
    • GetIsHostileToAnyPlayerFaction and GetIsNeutralToAnyPlayerFaction are also implemented, but are not actively used yet. Modder fodder.
    • GetIsFriendlyToAnyPlayerFaction is now used to determine what factions should be considered for the Friendly to Players extragalactic budget, where previously it was based purely on Allegiance.
      • This should help resolve some issues players have had with Extragalactic units sitting around instead of hunting down the player. This will not retroactively fix any 'broken' Extragalactic ships, so you still have the joy of dealing with them.
        • Thanks to Lord Of Nothing, and henry700 for the latest report and saves used to test this
  • Updated the recommended settings for fuel tips section with Strategic Sage's latest.
    • Thanks to Strategic Sage for writing and adding.
  • Added some clarification notes to the Dyson Sphere hacking file
    • Thanks to Puffin for noticing now unclear it was

DLC1

  • Ark Empires now get to pick what planet they get for free at game start, instead of simply having the planet they spawn on have no AIP cost
    • To further give value to this, they gain two scouting pulses at game start, allowing them to see further before picking
      • Thanks to Zer0h1nder for the notice that this should be more fleshed out
  • Modified the Dark Spire's response to being dismantled by the Splintering Spire
    • Interval response (every 30 seconds) reduced to 10% of prior value, Final response (when VG is destroyed) increased to 200% of prior value
      • Thanks to Lord Of Nothing for reporting how overwhelming their response could get

DLC2

  • Architrave now now allowed to expand onto planets near mobile kings, IF its their only option. They will still steer clear of any stationary kings
    • Thanks to Zer0h1nder for the report

Bugfixes

  • Fixed a bug where the Splintering Spire had tracing enabled at all times
    • Thanks to Zer0h1nder for the report
  • Fixed a bug where Dark Spire weren't regenerating their conquest targets list, leading to them putting Loci onto the same planets
    • Will not retroactively remove any, but they will no longer build more than 1 per planet
      • Thanks to a number of people for helping to narrow this down
  • Fixed a bug where seconds_to_fully_regenerate_hull was not correctly functioning
    • Thanks to Velius and Exlium for reporting that the Retribution Golem was broken, which lead to the overall discovery
  • Fixed a bug where units targeting Dyson/Spire Spheres wouldn't actually try to attack
    • Thanks to Lord Of Nothing, and henry700 for the latest report and saves used to test this
  • Fixed an issue where Splintering Spire Fireteams would forget what they were doing when loading a save
    • Thanks to Lord Of Nothing for the report
  • The grace period for not incurring a brownout with negative energy no longer counts upward while the game is paused. It wasn't a bug per se that it did before, but it was sure confusing and probably not ideal.
    • Thanks to samnainocard for reporting.
  • At the end of the game, the fleet of yours that is commended is whatever is the strongest one.
  • Fixed an issue where in Challenger mode you would be given a random second battlestation, rather than being able to choose your own.
    • Thanks to Jason Nelson for reporting.
  • The messages about experimental ship stats when right-clicking metal in the resource bar have been removed. That was a feature for a while, but was removed during the refactor and is not planned to return.
  • SafeTryRemoveAt and SafeTryGet and SafeTrySet have been added to our custom version of the List<> class.
  • Added our own copy of the Interlocked class, which ultimately just wrappers the other one because of extern methods that we couldn't bring in in the way I originally wanted.
  • Added SafeTryAdd to our List implementation, which in turn uses a bit of extra CPU to try to avoid issues when several threads are messing with it at once.
    • This is a less-efficient method, and should only be used in a few rare cases where we know we are going to have high contention, but we can't use a producer/consumer pattern for some reason (probably performance).
  • Adjusted the Add method on our List implementation so that it won't have array out of bounds errors if multiple threads are mangling a list together. It will just have a bit mangled data.
  • Completely reworked how the targeting lists for ships are tracked from a technical standpoint, using the new features now built into lists.
    • This is a lot more similar to how we handled this prior to the last few weeks, and it is lockless and thus free of any risk of deadlocks. We have been having some sim deadlocks (rare, but still a thing), and the new locks that were here seemed to be the culprit.
    • Thanks to Pyrrhus, trabbo, and others for reporting.
  • An even more recent change involving locks for the "incoming shots" calculations is now using the new list features to safely avoid locks and thus gain a bit of performance and again prevent deadlocks from happening.
  • I was unable to duplicate things being unsuitably unrandom (the outguard were always different for me no matter how many I generated in a row), but I've now put in place a default state for our random (MersenneTwister) so that if it is in the default state (indcated by -17), it will pull a random seed from the central RNG before generating values.
    • This should stop any form of stale generation that happens for whatever reason, even though it wasn't something I could personally duplicate.
    • Thanks to Tim_Fragmagnet for reporting, and StarKelp for verifying that it also didn't work for him.
  • In order for most anything to happen in the game, a "game command" has to be dispatched from a player or an AI or NPC, and then it gets scheduled and executed. We've been lately seeing a very strange issue on multiplayer clients, usually only after a very long period of the game being played (half an hour or several hours) where these suddenly start being mangled on the client but not the host.
    • This is something that has required a code review, and I just don't see anything wrong with any of the code, and the touch points are (on purpose) very narrow, so this really should not be possible. With that in mind, obviously it IS happening, so the next step is to figure out a way to either stop it (despite not being able to understand it) or trap it (to thus understand and then fix it).
    • Previously I've attempted to fix this by making sure that the methods that send gamecommands across the network can't get double-run, and that seems to have yielded no improvement (they were likely already protected enough from that).
    • Previously I also changed the nature of the pools for gamecommands (to be official pools instead of my first proto-pool for this style of data in this game), which led to more efficiency, but it's not clear if there was actually a direct improvement. I suspect that the old style was able to have rare problems, but it should have been affecting solo play as well, and either way didn't solve our core problem here.
    • This new build now changes the type of pool from being a ConcurrentPool<> to being a TimeBasedPool<>, so that if there are latent calls to a gamecommand, there's an 11-20 second period during which that game command won't be reissued as a new command from the pool. This should stop the direct issue if it's a matter of a gamecommand being handled in two places.
    • This new build also puts in some gates for when gamecommands are being serialized and deserialized, and if it tries to do certain other actions (like put them in the pool) when they are in the midst of that, it will show an error message with a stack trace.
    • And finally, this new build also puts wrappers around all of the contents of the gamecommands, so that if you call to those contents it checks to see if it is in the pool, or in the process of serializing or deserializing when data is unexpectedly altered, and if so it will throw an error message with a stack trace.
      • The current suspicion is that some sort of code somewhere is hanging onto a game command for too long, and making some sort of inappropriate changes to it, or that a game command that is meant to be sent to the client is instead put back into the pool too early. If one of those is true, then these warning messages will catch it.

Mod Updates

  • Updated Frigates Focus mod. Now also usable in Expert mode since the overrides now account for the alternate version of the ARS seeded in Expert.
  • Modders can now put the 'UniqueCommandStationCaps' tag on Command Stations, to have them show any galaxy caps they have, like how Spire Cities work in Spire Infused
    • Put in for Classic Fusion, could be useful in general for limiting, but powerful, station variations

New Hydral Federation mod by StarKelp!

  • Added in the Hydral Federation mod (requires The Spire Rises)
    • All of the races, fresh from the best ending from The Last Federation, have come to this galaxy. Lead by the Hydral, they have seen the endless war propagated by yourselves and the AI and have deemed you both a lost cause. They will slowly take over the galaxy, locking down planets, and PERMANENTLY removing them from the game.
      • The Hydral cannot be stopped, only temporarily halted. They have no desire for diplomacy with either you or the AI, both of you being even worse than even the Thoraxians or Burlust in their eyes. Having the Hydral Federation in your game is inflicting a very powerful third party that, unlike the AI, will rapidly expand. Rivaled only by the Dark Alliance in power, it is a race against time to see who achieves their victory first.

4.004 Easy There, Hack Response

(Released March 10th, 2022)

  • Remove an unneeded game lobby setting from the Spire Infused Empire.
  • Adjusted the expert, logistician, and challenger tooltips to reflect the fact that reduced resources (for hacking) starts out on challenger mode, and corrected things to note that beacons are only unavailable starting on logistician mode.
    • Additionally, the lobby tooltip for Expert no longer mentions having many fronts you must defend, but logistician now does.
    • Thanks to Strategic Sage for requesting.
  • Added a new setting to the game section of personal settings: No Ironman
    • If a campaign would normally be ironman, this will force it to NOT be ironman. Great for testing, but does make any save that would normally be ironman flag itself as being in cheat mode (so no achievements, etc). In multiplayer, this only matters on the host.
  • When modules on a ship line are changed around, all the ships in that line are paralyzed for 10 seconds.
    • Thematically, this is them doing their retrofitting. Functionally, this hopefully removes any incentive to drive yourself crazy microing the modules on and off during battle.
    • Thanks to motai for suggesting.
  • The cheat code "I don't even see the code" can now be entered without the apostrophe, and optionally without the second parameter (it then just gives you 400 HaP). You can also use the command "hacking" for short.
  • The game now supports reading in custom fields as "true" or "false" and converting those into bool values as you would expect, versus before it freaked out in an inscrutable way if you didn't remember to say "0" or "1". Now if it freaks out, it also gives you clarity on why.
  • Add a corrosive guard post to DLC3

Hacking Response Tweaks

  • Hacking responses were incorrectly including a Fallen Spire component even when they should not. This was leading to drastically inflated hacking responses
  • Hacking estimates for hacks with a strong post-completion response could be undercounted if completing the hack would bump you up one response tier (ie from 'Very Easy' to 'Easy')
  • The hacking estimate should now include the Exo response strength (where appropriate)
  • With the Hacking Debug setting enabled, the hack tooltip will tell you a bunch of information about how the estimate ie generated. This is for debugging/development use only
  • Thanks to Strategic Sage for a bug report

Dire CPAs

  • Dire CPAs are now in the base game. It's a galaxy setting one enables in the galaxy lobby.
    • When enabled, every so often CPA Bunkers will be spawned on the map. When a CPA is launched the CPA bunkers will release extra ships to make CPAs even scarier.
    • This just makes the game more challenging, and is on by default for some of modes harder than HA.
  • The CPA announcement now includes the strength of the Dire CPA component (if any)
    • Thanks to Strategic Sage for suggesting this

Return Of Faction Beacons (The First Two, Anyway)

  • Beacon hacking returns! At the moment, it's just for the nanocaust, but that's simply because that's all the xml I have set up thus far.
    • This can be set up, using only xml, to work with any faction or combination of multiple factions, and you can give any number of options for hacking them. With the nanocaust, I have 18 different options set, with intensities 5-10 of hostile to all, hostile to player, and friendly to player as options. When it's friendly to player, it also has them spawn near to you. Each hacking option is a fixed set of faction options, but so it's not truly freeform, but it does not have to be decided in the lobby, which is really nice.
    • There's a ton more power here than in the old beacon system, but one of the biggest improvements is to performance. In the past, this was having to include the entire faction, but just turn it off, when it was present. This was a huge performance drain, and also when many beacon factions are eventually added as options, particularly in mods, it would literally not fit in savegames. The new approach adds no factions until you choose to hack to meet them, and thereby lets you control the amount of insanity that is involved.
    • I will be making some more changes tomorrow, and adding in more beacons and beacon factions, but this is an excellent starting spot.
  • The game now supports having beacon factions that are different mixes on different options in the beacon hacks. Because why not.
  • All of the old unused beacon faction code and xml is now fully removed, since it is no longer needed at all even for reference.
  • The Fallen Spire beacon has been added back into the game, but it only seeds if you don't already have fallen spire or a spire-infused player present. Also, just like the regular fallen spire, it requires a metal-using player to be present in order to seed (so solo necromancer empire can't pair up with it).
  • For beacon factions, added a new blocked_from_seeding_unless_all_of_these_factions_are_included, which allows you to specify a required list of factions that must be present in order for it to seed.
    • Thanks to StarKelp for requesting.

Bugfixes

  • The tooltips for ships now show a lot more details for any auto-targeting targets they have for each of their systems.
    • Additionally, it now shows which auto-targeting group they are a part of.
    • Thanks to Tim_Fragmagnet for a report that inspired us to have more information visible here.
  • The way that auto-targeting groups are calculated is now done centrally, and it's no longer possible for units to potentially get lost in the shuffle and not get auto-targeting orders.
    • Thanks to Tim_Fragmagnet for a report where this was probably what was happening.
  • The way that "incoming shots" are tracked on ships, which is used in overkill detection, has been improved a lot.
    • First of all, it's more efficient now, and tracked internally only, and has more granular cross-threading protection rather than allowing for a cross-threading error to interrupt the entire process.
    • Secondly, any incoming shot now times out after 10 game seconds, so nothing can get stuck in a "it's going to die because of incoming damage" state where enemy units won't fire on it. Not sure if this was happening, but it's possible, and now it should not be.
    • The "Show incoming-shot debug data in unit tooltips" debug setting has been removed, as the individual shots are no longer interesting to see in the same way.
    • The tooltips now show how much damage the ship is expected to take from incoming shots, or if there are incoming shots but no damage, then it also shows that.
    • It is likely this will fix some bugs, or it's possible it might just make things more clear if a bug in this area resurfaces.
    • Thanks to Tim_Fragmagnet for the related report.
  • Adjusted targeting logic so that if a unit is not fully claimed, but belongs to a player, it is now valid to be shot. Previously, some metal harvesters that were half-alive were not being shot further, which looked like a bug. Now they get pasted instantly.
    • Thanks to Tim_Fragmagnet for reporting.
  • Fixed three more sets of tooltip errors that could happen right when units were dying.
    • Thanks to Lord Of Nothing for reporting.
  • The "bonus for sitting on a planet for a while" tooltip text was cut off and had some other oddities.
    • When this is a ship owned by nobody, it now just tells you about it in the abstract, as if you were not looking at a specific ship (so, if you capture this, here's how it would work).
    • When it's a ship owned by an NPC, it doesn't show this at all.
    • If this is not showing the first half of the sentence, it makes sure not to write the last half of the sentence (such as with cloaked flagships).
    • Thanks to Zer0h1nder and Strategic Sage for reporting.
  • In the event that a wave timer would be negative or zero (aka, it thinks the wave should already have landed, but it has not yet), it now says "SOON" on the notification, and "any second now... but the exact timing may be a surprise" in the tooltip for it.
    • Usually waves will launch on time, but there are cases where the game is running the AI threads more slowly because of load, or the "only run every X seconds" logic is there anyway, and so the exact timing is just not actually exact in all cases.
    • It doesn't really make any sense to try to make the timing more exact, since this flexibility is one of the things that helps performance, and not knowing down to the second when a wave is going to arrive is mildly interesting anyhow. So now it's simply handled in a way that makes it not look like a bug.
    • Thanks to Daniexpert and NRSirLimbo for reporting.
  • The description of Showdown Devices now more correctly matches their behaviour
  • Put in error handling for CalculateMatchesOnBackgroundThread, since I ran into an exception on that background thread in the internal version for some reason.
  • Fixed an exception that could happen when getting the faction's internal display name after a fairly specific set of operations involving adding a faction and then going back to the menu and back into the game. Likely it was also triggerable by other circumstances, but it's hard to be sure.
  • Fixed a long-standing bug in the display of multipliers regarding Attack Bonus of type 'multiple_of' in R-view.
    • Big thanks to Daniexpert for this fix, and figuring out how to fix it!

Mod Updates

  • Update to More System Defenders. Now allows players to choose a version of the Stormfront Ark to lead their Ark Empire within that game mode.

4.003 A Bit Too Chromatic Horrifying

(Released March 9th, 2022)

  • CPA Bunkers now try not to spawn on planets with a CPA bunker already. Remove the AIP cost for killing them
    • Suggested by Strategic Sage
  • The starting data structures and the first test xml has been set up for the return of beacon factions. It's not wired up to do anything yet, but the data is pretty much fully described for the nanocaust as a first test case, so this should then open up the rest of things for getting things to be beacon-ready.
    • The new data format is pretty cool, as it can set any custom fields as part of the beacon options, and it can also include multiple factions from a single beacon if we want to. The main purpose of that is really for multi-faction factions (there are a number of those), but it could in theory also be used for something like a beacon that calls in two warring factions that explicitly hate one another, or whatever else.
    • Unlike the prior beacons, this is something that is really mod-friendly, or it will be once the feature is completed, so that's also pretty exciting.

DLC1

  • The fallen spire and the spire infused empire should now use shared logic for determining whether to have the dark spire enter conquest mode
    • Strategic Sage indicated there was a problem
  • Add a new Galaxy Setting to allow players to prevent the Chromatic Horror from moving player structures around.
    • This is untested
    • Requested by Crawlers

DLC3

  • The Necromancer rifts journal clarifies that rifts will continue to spawn over time
  • Rift hacks can now grant 30 essence instead of 15, since people considered 15 to be too low
    • From a balance discussion on discord
  • Rift hacks to increase bodyguard caps now give double the number of bodyguards
    • From a bug report by pmm5000_1
  • Rework how Templar mark levels are chosen. Each wave leader picks a random mark level based on the AIP/Templar difficulty (at the moment, >= 180 AIP means every wave leader will be between 5 and 7; so you might get 1 mark 5, 1 mark 6 and 2 mark 7s.
  • All Templar ships that spawn from a structure (either as part of a regular wave, hacking response wave or to defend their territory, will take the mark level of the structure they spawn from. So a mark 5 castle will spawn mark 5 ships
  • Add the concept of 'Corrosion Damage'. Corrosion damage sticks on the enemy ship, and applies over time.
    • Every second the target has some of its remaining, unapplied Corrosion Damage happens to the unit; something like 8% (minumum 8 damage). This damage goes directly to the target's hull.
    • An entity-system can have an an additional flat amount of corrosion damage with the XML tags corrosion_damage=X and corrosion_damage_added_per_mark=Y
    • An entity-system can all say all_damage_is_corrosive="true", in which case it will all be corrosive.
      • Add a Corrosive Guardian to DLC3 as an example for using this new mechanic.
      • Corrosion damage example. I have 50 corrosion damage on me. Next second I take 8 damage, and there's 42 damage left. Someone hits me for 100 additional corrosion damage. I now have 142 corrosion damage and take 15 next second; there's 127 corrosion damage left on me

Bugfixes

  • Add some debugging code to GetWaveComposition
    • From a bug report by henry700
  • Added a new ThrowawayDrawBagCanMemLeak data type, and this internally uses our existing ThrowawayListCanMemLeak type (which is mostly used in mapgen until now).
    • These are used for very short periods of time, and are meant to be thrown to the garbage collector. I had wanted to avoid this sort of thing, but we've been having persistent intermittent issues with cross-threading issues on certain worker methods (like for wave spawn), and the RapidAntiLeakPoolable approach that I had developed is just not robust enough. I also worry about that contention on that leading to slowdown in larger games.
    • I am going to build out some more of these kinds of throwaway collections and probably will phase out a lot of the RapidAntiLeakPoolable thing since it seems to only be causing problems.
    • There is also a new interface called IDrawBag<T>, which can be used to manipulate either kind of draw bag without knowing or caring which kind it is.
      • I actually am not yet using that on any methods, because on the methods where it would be relevant, I actually want to signal that only a throwaway draw bag should be used, because the sorts of manipulations that are being done in those methods are not for permanent data.
    • As an aside, this should not be taken as a signal by modders/developers to just use the throwaway collections willy-nilly. There are many better code patterns, such as not using a collection at all and instead using an iterator/dofor, which have the benefit of both performance and better memory usage, while still having the same amount of readability.
      • This is essentially something that should be used in place of places where we were using RapidAntiLeakPoolable stuff before, because that had its own performance implications and occasional cross-threading issues. If you can refactor slightly to avoid the need for any of this, and just use an iterator, then so much the better.
    • Thanks to henry700 for the most recent report of an exception in ChooseWaveTarget.
  • A new version of StringBuilder has been added into Arcen.Universal, which is slightly more efficient than the one that microsoft provides, while providing the same functionality (the subset we use, anyhow).
    • Referencing System.Text is now something that will cause ambiguous references between our version and theirs, so just removing that reference will solve the issue for any mods that are affected.
  • Fixed exceptions that could happen in the quick start screen if your local player profile happened to be null at the current time.
    • Thanks to Dismiss for reporting.
  • Fixed an issue where the game was limiting you to only one Battlestation on Challenger+, when it should have been on Expert.
    • Thanks to Strategic Sage for reporting.
  • Fixed an exception that could happen in tooltip generation if the ship you were hovering over died at just the wrong moment.
    • Thanks to Relay Bot for reporting.
  • For purposes of movement and panning, the camera now clamps its maximum "frame delta time" to be the equivalent of 20fps, or a twentieth of a second. If there is a very large single frame (garbage collector, waiting on disk, whatever), it will thus no longer cause your zoom to shoot all the way in because of getting a very large d/t for a frame where you were rolling the mouse wheel.
    • The one potential downside of this is that if someone legitimately has ongoing performance that is worse than 20fps, their mouse inputs will be slowed to whatever the ratio is to 20fps. So for example if someone had ongoing 15 fps, their mouse inputs would be sluggish at 75% of the normal speed. At 10fps, it would be sluggish at 50% of normal responsiveness.
      • Since I'm not aware of anyone routinely running that low (and anything at 20fps or higher will perform with normal responsiveness), this seems like a safe thing to do.
      • I could have clamped this at 10fps, but part of the thing is that some mice have quite a sensitive wheel that can be rolled or spun very far in a short amount of time, and a tenth of a second will probably still allow for more zoom-in at once than is desirable. That's one of the main reasons I haven't done anything about this issue despite it being around since 2017.
    • Thanks to Mac for the most recent reminder on this.
  • In the event that a unit was supposed to repair another unit, but that other unit already has been healed full by whatever means, it now just silently skips that versus... throwing an error, which was an odd choice.
    • Thanks to Daniexpert for reporting.
  • Added more code to make absolutely sure that DoOnAnyDeathLogic_HostOnly_AfterFullDeathOrPartOfStackDeath is not ever run on MP clients.
    • Thanks to Badger for reporting.
  • Since gamecommands are coming through as scrambled to clients in multiplayer some of the time, but the canary code after them is not being hit, it is very likely that they are being sent in an improper fashion by the host. The host is executing them perfectly, so it must be something that is changing during the actual send, it seems like. With that in mind, I've put extra gating on the host (and on the client just to be extra careful) to make sure that they never overrun themselves in the same method there, since that seems to be the most likely source of this sort of error. If this doesn't work on its own, I can put in some more detailed logging, but after yet another code review, this seems to be the most likely culprit.
    • Thanks to Badger for the most recent report.
  • When a planet is taken over by a new AI (from reconquest seeding via an Usurper), it's possible that a new AI is moving in compared to the AI that originally owned the planet. Either way, it now shuffles around the types of units to spawn there based on the AI taking over, so that the planet will have a fresh set of units that it prefers to seed there.
    • When it comes to the same AI taking over, this is not really a big deal, but makes for some minor variety. When it's a different AI taking over, this is actually a really big deal, because the new AI type might not be intended to use the same ship types as the first AI type.
    • Thanks to GreatYng for this report, with investigations on their part going back several years actually.
  • In multi-AI games, it's possible for AIs to launch waves or border aggression from planets that belong to other AIs. Normally border aggression or wave contents is determined by the AI groups chosen at that planet, but when it's from a different AI, it may not be intended to share that AI group. In those cases, it now finds a different random AI group that it is supposed to have to use to populate the wave or the border aggression.
    • In multi-AI games, this should keep AIs with unique ship types from sharing those with their partner (or enemy) AIs that coexist with them.
    • This, like the other adjustment to AIs after reconquest seeding, is untested but should work.
    • Big thanks to GreatYng, again, for chasing this down over about a three year period.

4.002 Macrophage Live!

(Released March 8th, 2022)

  • The encyclopedia now honors the "pause when opening escape menu" options that are in settings.
    • Additionally, when you are in-game and looking at it, the header of it now says "game still running" in cyan, or "game is paused" in the same orange that the resource bar uses.
    • Thanks to trabbo for suggesting.
  • When you have a necromancer in the game, some types of AI defensive structures can be used to produce near-infinite Skeletons, Wights or Mummies. The game now swaps these structures for AI Fortresses, which should still make the planet a challenge
    • To apply this to new structures, add a tag "SwapOutForNecromancer" to those AI Defenses. With this tag the game will replace those structures with AI Fortresses when there is a Necromancer.
  • Rejigger the Necromancer starting ships to not include variants. I was worried it would encourage players to spec science into things they don't have access to, and potentially overwhelm a novice. Instead you get a lot of Base skeletons and wights.
    • This is intended to be power neutral for the player.

Bugfixes

  • Fixed an issue where two legacy xml files were removed (rather than just blanked out) as part of the 4.0 upgrade, and so installing into the existing folder the game was already in would lead to errors. These files have now returned, but are empty, and thus overwrite the old files, allowing people to install things over-top of their existing installation.
    • Also, this winds up then not relying on Steam or GOG Galaxy to properly delete the missing files, because they don't always do that. Once a file exists in the wild, we try never to remove it, only to deprecate it.
    • Thanks to trabbo for reporting.
  • Some errors were happening related to drones moving between different fleets of the AI, which I think is something that happens when you kill the drone producer. This error no longer happens, and it no longer considers that and a few other cases an error at all.
    • If the error does come up now, it also give a bit more information than before.
    • Also if this error does come up now, it properly sets things up to not endlessly spam errors about any single unit.
    • Thanks to [LA] Talderius for reporting.
  • More firmly fix a problem where Necropolises were rebuilding on planets with AI Reconquest Command Stations
    • Thanks to daniexpert for reporting
  • Add some additional randomness to the Grid map type's random connections
    • Reported by Tim_Fragmagnet on discord
  • Add some defensive code to brownout notifiers
  • Fix a typo in the fuel description
    • Reported by Tim_Fragmagnet on discord
  • Fix a flicker in the hacking difficulty estimate colour
    • Thanks to Zer0h1nder for reporting
  • Player-allied ZA Castras can no longer be hacked
    • Thanks to Zer0h1nder for reporting
  • Fixed an issue where GameCommands were using a custom ConcurrentQueue solution instead of an actual proper pool, and that was probably leading to some game commands getting added in twice (there was no protection against that, unlike in the proper pooling solutions), and thus this is likely the culprit for some of the deserialization issues that we were seeing on MP clients. It's probable that this was also causing other issues.
    • As part of this, I consolidated things to one pool rather than one pool per game command type (this was something that was required based on the nature of the pool initializer methods). A side effect of this is lower memory usage from commands in general, and fewer of them in existence during the game. Originally I had split it because I was worried about contention between multiple threads, but we're really an order of magnitude away from having to worry about that, which is good. A lot of those original design choices were because I made the changes here very early on into the refactor before I had truly tested out every aspect of performance and behavior that came over the 8 months after that. And then I just never noticed that this was a bit off.
    • Thanks to Badger, ptarth, and likely others for reporting.
  • Fixed a bug that effectively made the Macrophage never try to build Telia
    • Thanks to Relay Bot for the report
  • Fixed a bug where Macrophage wouldn't return metal to their Telia if they were being challenged to fisticuffs by a tanky hostile ship
    • Thanks to Relay Bot and Zer0h1nder for the report

Mod Updates

  • An XML property tag was renamed in the base game. This in turn broke some station keeping entities within More System Defenders (MSD) as the name of the property being set was no longer the same. This is now fixed to again call the right property.
    • Essentially the tag in question is for keeping certain station-keepers off of battlestation and citadel grants from the ODSS. Same logic is used in DLC2 for the various drone hangars.

4.001 Autobuild Automation

(Released March 7th, 2022)

  • Moved the unit encyclopedia link to the far right of the top bar.
    • Thanks to Zer0h1nder and Strategic Sage for suggesting.
  • In the event that there are too many drones created by an NPC faction, it will start deleting the excess of drones now. Additionally, it will not produce drones or release them if it would put them over cap.
    • Drone guns, on the other hand, will still fire in these cases; most likely the outcome will be older drones dying off inexplicably rapidly when that happens.
    • Thanks to Mysais for reporting.
  • A new "Raid" category has been added for planet importance options.
    • Thanks to Bummeri for suggesting.

Marauders

  • Due to report from voidlily on the Discord about Marauders exceeding drone caps some changes have been made.
    • Marauder V-Wing and Bomber drones now have 4x costs, health, and damage compared to normal.
    • Marauder drones now attrition by 15% per second when the host is lost instead of 1%.
    • Marauder Outposts now only have 5 each of both types of drones instead of 20 each.
    • Marauder Drone Frigates now only have 2 each of both drones instead of 5 each.
  • Also went ahead and adjusted Marauder Constants and Marauder Outposts.
    • Marauder Outposts now have some of their turret ring weapons baked into the outpost.
      • These would be equivalent to 5x Concussion Turrets, and 4x Fusion Turrets.
      • The Fusion Turret equivalent has a minimum mark level of two to function. Which is when outposts normally gain turrets of this type.
    • Marauder Constants now only have new outposts spawn in with 5 Concussion Turrets instead of 10. And on first mark up they only gain an additional 4 turrets protecting them instead of 8.
      • This is an average savings of 18 less turrets spawned on ally controlled worlds and 36 less turrets per world the marauders have primary ownership of.
  • For existing games this will slightly be imbalanced towards Marauders unless their now excess counts of planetary turrets get cleaned out. New games will get the full benefit of having less entities in play.

Auto-Building

  • More autobuilding changes and improvements:
    • Ships can individually override the values used for auto-spawn with XML entries:
    • autoplacement_use_custom_parameters (bool, default is false) determines whether any of the below actually matters, or if the game should attempt to place this unit by whatever thing it seems to be.
    • autoplacement_anchor (values: CenterEntity, CenterOfPlanet, GravityWell, default is CenterEntity) determines where something should be placed. For automated building the CenterEntity is the command station.
    • autoplacement_distances_adapt_with_gravwell_size (values: Static, ReduceIfBelow, IncreaseIfAbove, AlwaysAdapt, default: Static) determines whether or not the next few distances (min/max/absolute max) scale with the default gravity well size of 52k, to be held proportional to the planet size.
    • autoplacement_min_distance (int, >=0, default 0), autoplacement_max_distance (int, >autoplacement_min_distance, default 1000), autoplacement_absolute_max_distance (int, >autoplacement_max_distance default 99999999), this determines how far from the anchor something is attempted or allowed to be placed.
    • autoplacement_variance_add (FInt, >=1, default 1.01), autoplacement_variance_sub (FInt, <=1 & >=0, default 0.99), this determines how much the min/max distance requirements are relaxed each (failed) attempt.
      • So autoplacement_variance_sub="0.99" would mean that the autoplacement_min_distance would decrease by 1% each attempt. The more this value differs from FInt.One the quicker placement locations will be found, at the cost of usually being further outside of the initial anchor min/max distances.
    • autoplacement_max_tries (int, >0, default 100) is how many attempts are made in general. The more, the longer the code may run but the more chances this has to find a location at all.
      • Finding the perfect values for this is difficult, but unless there is a very specific placement needed or the space near anchor is already littered with things the code should never have to run for too long. And even if, this is all on a background thread.
    • Autobuilding is now on its own background host-only thread, so it will not block sim threads or some special global player logic (which is where it was before). Even if placing a turret takes ages the game will continue.
    • Implemented Sniper Turret Ring building. For now this is experimental (and marked as such), but in tests it works very well.
  • Building forcefields, engineers and factories no longer counts as building (weaponized) defenses, thus the helper journal for enabling these functions should now appear again if needed.

DLC3

  • Overshot how metal intensive Sapper strikecraft should be. Pulling metal costs back down a bit so they replenish faster but aren't as fast at building as they were before the buffs.
  • Fix a bug with the necropolis-swap hack
    • Thanks to Daniexpert for reporting
  • Skeleton homes now grant more bodyguards; +2 bodyguards (archer/warrior/rogue), +1 bodyguard (mage/lord)
  • For Necropolises, there was a hole where the AI might build a reconquest command station on a planet with a crippled necropolis, then the player could rebuild the necropolis, so you could have a functioning Necropolis and an AI Command station on a planet at the same time.
    • Untested, for feedback. Thanks to Daniexpert for reporting
  • Necropolis modules now do necromantic damage
    • Thanks to Pmm5000 for reminding me of this
  • Feeble Elderlings grant a bit more Essence.
  • The Necromancer can now use the Sabotage hack, just like the human empire
  • If you don't have Igors already unlocked, Igors will be available in the second rift
  • If you don't have Banshees already unlocked, Banshees will be available in the second rift
  • The first rift will also offer you a skeleton type or a wight type you don't have yet
  • Fix a bug where Elderlings were not laying eggs
    • Thanks to Sage for reporting
  • The 'move necropolis' hack no longer lists the necropolis you want to move as an option.
    • Thanks to Daniexpert for reporting
  • Decrease the skeleton lord's bonus damage
    • From Daniexpert's feedback
  • Templar Constructors are now much slower and more powerful. In addition they grant a good amount of Science and Hacking.
    • The goal is to strongly reward good strategy (killing these constructors will really limit the Templar's expansion), buffing the player strategically and with resources.
  • There have been a number of buffs to the Necromancer in the last couple patches, due to feedback that the Necromancer was a little more challenging than we wanted. I've tried playing with a number of balance-dials in part to try to figure out how much impact each one has. If it turns out that (say) additional bodyguards is a really big buff, that's good to know.
    • I also went (perhaps) a bit overboard with the buffs, but I'd like to know that player feedback as a much stronger necromancer makes the game more fun. Right now the game is harder than HA according to testers, so I'd like to see what people think about the game being a bit easier than HA; if it's just way more fun to feel Powerful as the necromancer then we can lean into it to find the sweet spot.
    • If it turns out that these buffs are not enough to make the game feel easier I'll make more changes, because I really would like to know how a Buffed Necromancer feels
  • Added seeding of Necromancer Utility building at the start of the game.

Bugfixes

  • Fixed a very confusing issue where if your fleet was in hold fire mode and you tried to build a command station, it would just silently fail.
    • Now hold fire mode does not block construction at all.
    • Additionally, if you don't have any builders present (or all of them are crippled or otherwise disabled), a message pops into the chat area that states that.
    • Thanks to Dismiss for reporting.
  • Fixed the tooltip on the "starting metal" option in the lobby to include the text: Default is 2.5 million (that is also the maximum, because adding more would not fit in the storage capacity of your starting command station).
    • Thanks to Incognito and Strategic Sage for reporting.
  • Fixed a couple of places in the per-second sim repair where in super duper large games it could wind up assigning the wrong unit to the central registry, as that unit died in the middle of being checked on that thread.
    • Thanks to Mysais for the save that demonstrates this.
  • Fixed an issue with the display in the escape menu claiming there were a much larger active number of shots than there really were. What it was counting was actually the number of shots that were ever registered in the current session, and that list can indeed get to be hundreds of thousands or millions of entries long, without it being a performance concern. The number of shots actually flying in the air right now is a much larger concern.
    • Thanks to SirLimbo for reporting.
  • Fixed a handful of typos.
    • Thanks to Strategic Sage for reporting, and Dvd as well.
  • Potentially fixed an issue at SetParentEntity in entity systems.
    • Thanks to Alivaril for reporting.
  • Previously, if you hacked a Zenith Miner to turn a planet nomadic, and you did not have any other nomadic planet,s it would just throw an error instead.
    • The game now has a game command for belatedly adding factions to the game (this will be the exact thing required for beacon factions to return, actually!), and it uses this to add in the nomadic planet faction, thus letting the hack work properly.
    • Confirmed that the nomadic planets work properly after addition, as part of this. This was also impacting the nomadic galaxy option.
    • Thanks to The Beast of Bognor and Incognito for reporting.
  • Fixed a bug where tachyon planning could still have a cross-threading exception.
    • Thanks to Zer0h1nder for reporting.
  • The game is now much better about enforcing two AIs when your campaign type requires it (Expert and upward).
    • If you are starting a quickstart in Expert+, it now copies the first AI if there is only one, and uses those settings for the second AI.
    • Also fixed a bug where it was not even setting the quick start to the desired value when you started a quickstart (it was always whatever was baked into the quickstart).
    • Thanks to Strategic Sage for reporting.
  • Updated A Twisted Enemy from DLC1 to be a newer copy of the quickstart that is not on the honeycomb map.
    • Thanks to Strategic Sage for reporting.

Prior Release Notes

AI War 2: The Great Refactor