Difference between revisions of "AI War 2:Post Completion Part II"

From Arcen Wiki
Jump to navigation Jump to search
 
(32 intermediate revisions by 3 users not shown)
Line 20: Line 20:
 
We expect AI War 2 to have a ''long'' life if AI War Classic is anything to go by.  The game is in a really good state, and we want you to be able to enjoy it for years and years.
 
We expect AI War 2 to have a ''long'' life if AI War Classic is anything to go by.  The game is in a really good state, and we want you to be able to enjoy it for years and years.
  
== 5.591 ==
+
== 5.599 ==
(Still in progress)
+
(in progress)
 +
 
 +
== 5.598 Sidekicks And Elderlings ==
 +
(Released April 27th, 2024)
 +
 
 +
=== General ===
 +
 
 +
* Elderlings which are immune to zombification are now likewise immune to hostile-to-all zombification.
 +
* Elderlings not owned by the elderling faction (ie. nanocaust) no longer show in tooltip "No per unit data?".
 +
 
 +
* Ships not fully built now do not take hostile attrition damage.
 +
* Ships not fully built now immune to capture.
 +
** Includes: remains, not fully claimed, crippled, or has self-building metal remaining.
 +
 
 +
* Show reason immune to capture, if debug tooltips
 +
** This only affects formatted.
 +
 
 +
* Clear deatheffects on remains.
 +
** If something is currently remains, clear any death effect damage on it.
 +
 
 +
=== Sidekicks ===
 +
 
 +
* Dyson Sidekick default stronghold is now Zenith
 +
   
 +
* The Spire Sidekick can now get science/hacking by killing ships
 +
** For some synergy, Nadir ships (generated by the Dark Zenith) and Reapers (generated by the Dyson Sidekick) now grant science to the Spire Sidekick
 +
   
 +
* Add some new unique turrets to the Miskatonic AI Type
 +
 
 +
* Dark Zenith Sidekick
 +
** Tweak the DZ sidekick science generation to match the spire sidekick's
 +
** Some nerfs to the DZ Sidekick; they now produce fewer ships each time units are created. This rolls back half of the buffs given previously (there were also some economic buffs)
 +
 
 +
* Nadir (enemies to the DZ Sidekick) tweaks
 +
** Add a new Nadir ship
 +
** Fix a bug where not enough Nadir ships were spawning.
 +
** Add and adjust Nadir balance levers
 +
 
 +
== 5.597 Sidekick Bits ==
 +
(Released April 20th, 2024)
 +
 
 +
* Dark Zenith Sidekick
 +
** Doombombs no longer join fleets
 +
** Tweak the Epistyle hacking text
 +
** Nerfs to the Nadir
 +
 
 +
== 5.596 Deflicker ==
 +
(Released April 13th, 2024)
 +
 
 +
=== General ===
 +
 
 +
* Fixed a flicker in the protection status of an entity, if under more than 5 forcefields.
 +
* Regular elderlings should no longer be zombifiable, as intended in last update.
 +
** They were immune, briefly. But then would lose track of their own shipclass and not know they were immune anymore.
 +
 
 +
* The Ships sidebar currently indicates that a flagship is in Transport mode with a blue (T) in the Watched/Local fleet section.
 +
** There's now an "Experimental" setting (under "Game") to make the (T) indicate "Percentage of ships loaded" by its colour; it will go from Red (nothing loaded) to green (fully loaded). I regularly want to be able to monitor whether remote flagships are fully loaded, and this will allow me to do so easily.
 +
 
 +
=== Sidekicks ===
 +
 
 +
* DZ Sidekick
 +
** Fimbulwintering a planet requires a local flagship
 +
** Nadir Bases now mark up over time, and spawn stronger ships as they mark up
 +
** Epistyles can now be told to send the ships they make to a particular flagship, instead of just "the nearest flagship" via the hacking menu
 +
** Flagships on the map can no longer be claimed from planets controlled by hostile factions
 +
 
 +
* Spire Sidekick
 +
** Claimable flagships now come with modules, and can no longer be claimed from planets controlled by hostile factions
 +
 
 +
== 5.595 Deprotect ==
 +
(Released April 6th, 2024)
 +
 
 +
=== General ===
 +
 
 +
 
 +
* Elderling Zombify/Nanocaust Fix
 +
** <code>GameEntity_Squad.GetImmuneToCaptureReason()</code> was incorrectly treating <code>SpecialEntityType.None</code> as immune.
 +
** Elderlings were inconsistently marked as either normal or <code>can_be_zombified_and_similar="true"</code>.
 +
** This shipclass attribute applies to both zombify and nanocast effects, but due to some changes in how immunity is now handled (by obeying that shipclass attribute) elderlings needed their shipclass to be tweaked.
 +
:# Base Elderlings (of the faction): Immune to zombification, can be nanocaust.
 +
:# Hacked forms and Transcendental: Immune to both zombification and nanocaust. As these cause AIP on death, i doubt people would enjoy having them die twice.
 +
:# AI Elderlings: Can be zombified, can be nanocaust. Exception: the biggest tier of ai elderlings which it uses as exo leaders are immune to both nano/zombify - to match the theme of all other exo-leader ships.
 +
:* Also, by doing this immunity via a 0x multiplier to specific death-effect damage types, this means the elderling will only show as having nano/zombify damage points on it, if its actually capable of being turned (for either effect, individually).
 +
 
 +
* Tractor Fixes
 +
** Reverse-tractors now actually do pull the ship with them along with movement of the target, whereas before they would only remain in range do to their own efforts at kiting, which did not look very 'tractored' at all.
 +
*** Note that this is done as a positional offset applied at the beginning of movement planning, and does not prevent the ship with the reverse tractor from disengaging if ordered to do so.
 +
** Also fixed, ships with reverse tractors will no longer decollide with the ship they are holding on to.
 +
** Also fixed, all tractors now check range the same way weapons do (considering radius of self and target).
 +
*** Mosquito Corv. was found to not be in range to tractor its own target at its own kite distance, despite both the same range (this would only occur if the target radius is big enough, but since its tractors only work on >5 mass, they are pretty big).
 +
** Also fixed, now by default ships do not kite at all relative to ships that are held in our own tractor, or that hold us in their reverse tractor. Doing so would obviously be futile. For specific entities which had this behavior before, intentionally (tackle drone, deathgrip drone) -- they have been marked with a new attribute to enable this behavior <code>custom_KiteEvenTractored="true"</code>.
 +
** Also fixed in the process of this, knockback will now occur for some entities that would have been skipped for unclear reasons before (entities with no kite target, entities paralyzed).
 +
** Also fixed, ships held by tractors are no longer allowed to do decollision movement. Since doing so looks super bizarre and could even break the tractors lock.
 +
 
 +
* Formatted tooltip improvement to how target requirements are shown.
 +
** This applies to tractors, gravity field, and other such non-weapon systems which have stat requirements for a target to be affected.
 +
** Previously shown as "| req.[stat]>N" is now "| <b>if</b> [stat]>b" and also I'm using an up/down arrow rather than >/< symbols.
 +
 
 +
* Fixed memory leak which occurred since last update. Details of this and other unrelated memory use improvements in Coders below.
 +
 
 +
=== Coders ===
 +
 
 +
* Misc mod .csproj edits.
 +
** MacrophageHistriocytes projects converted to use Base.props
 +
** RadiantMaps converted to use Base.props
 +
** All starkelp mods fixed to not show up as modified binaries every time they build.
 +
*** The important part of doing this is <code><Deterministic>true</Deterministic></code>, but also, giving a unique intermediate directory for the base/deep projects which share the same folder. Otherwise, they will dirty each others obj/ folder and always need to build every time despite literally nothing changing.
 +
 
 +
* Base.props and batchScripts changes.
 +
** Fix to copy script so it does not error if the path contains spaces (if from steam install location, it usually will).
 +
** Base.props in root is gone.
 +
** XmlMods/Base.props is improved.
 +
*** Arcen projects which exist will be project references.
 +
*** Ones that do not exist, will be assembly references.
 +
 
 +
* Squad memory usage reduction re: PotentialTargetsToPriorityLookup dictionary
 +
** This was added in the last update and is the cause of memory use growing more than before.
 +
** Is now a <code>DoubleBufferedDictionary<int,int></code> instead of <code>ConcurrentDictionary</code>.
 +
** Is cleared/released unless debug setting 'show target info' is on.
 +
* Squad memory usage reduction re: ProtectingShields lists
 +
** Removed <code>GameEntity_Squad.ProtectingShields_NoDamageReduction</code>
 +
** Removed <code>GameEntity_Squad.ProtectingShields_ReduceDamage</code>
 +
** Added <code>GameEntity_Squad.ProtectingShields (DoubleBufferedList<LazyLoadSquadWrapper>)</code>
 +
** Added <code>GameEntity_Squad.IsUnderDamageReducingShield (DoubleBufferedValue<bool>)</code>
 +
** Instead of two lists squad now has a single list and its capacity is capped at 5. If a squad is under any shield which does reduce damage, there is a separate double-buffered bool for that. Note that the bool will always have the correct value of 'true' if the squad is under any shield which does so, even if that shield is #6 and therefore not included in the list.
 +
 
 +
* Squad memory usage reduction re: AreaBoosters_ShotEvaluated list
 +
** This list is now capped at 3 items. Knowing one is protected by 20+ shot attractors is not actually useful information and allows this list to grow into significant size that is permanent until world shutdown.
 +
 
 +
* Squad memory usage reduction re: AreaBoosters_NotShotEvaluated list
 +
** <code>GameEntityTypeData.ProjectsAreaBoost_NotEvaluatedAtShot</code> is a bool that is not actually tied to any xml attribute, and has been removed.
 +
** <code>GameEntity_Squad.AreaBoosters_NotShotEvaluated</code> is a list which would contain such entities within range to boost/affect them in some way, but no such effects exist nor code that even iterates the list, and hence has been removed.
 +
 
 +
=== Sidekicks ===
 +
 
 +
* Some nerfs to the Reapers (the enemy of the Dyson Sidekick), they're a bit overtuned
 +
 
 +
* Spire Sidekick
 +
** The Spire Sidekick will find its own variants of the Zenith Golems that it can use as Flagships
 +
** This helps make them more paowerful/interesting, but with a relatively small number of ships; this is beneficial to MP performance.
 +
 
 +
* DZ Sidekick
 +
** The DZ has a bug where their upgrade to give themselves more Epistyles per planet was not working. This bug is now fixed for the DZ Sidekick.
 +
*** The base game behaviour is unchanged, since I didn't want to rebalance the DZ lategame; if it's desired to extend this fix to the base game DZ its very easy in XML
 +
** The DZ Sidekick economy will now work a bit better; a few more resources, and things are a bit cheaper
 +
** The DZ Medusa flagships are buffed
 +
** The DZ Sidekick now uses Hacking to claim Flagships and fimbulwinter planets
 +
** Periodically, new AI allies, the Nadir, will spawn; killing them will grant science and hacking to the DZ Sidekick (and science to the Necromancer)
 +
 
 +
== 5.593 Devourest ==
 +
(Released March 23rd, 2024)
 +
 
 +
=== General ===
 +
 
 +
* Gracefully handle Profile future version.
 +
** Your profile has the game-version in it, though it does not actually depend on it otherwise. It is not unusual for coders to end up with a 'future' version the game saved into ones profile. Actually the same thing will happen if you rollback to an earlier steam version. When this happens, instead of deleting the whole profile and ALL personal settings .. just pretend its the current version and message that it did this to the log.
 +
 
 +
* Added Personal Setting > Performance > Behavior if not Focused.
 +
** By default is 'Normal' but can also be 'Throttle' or 'Suspend' to reduce cpu/gpu usage when appropriate.
 +
 
 +
* Target Planning Fixes
 +
** Fixed a case where low importance targets were being picked above better choices, do to sorting not being done based on that importance value. Since distance is now part of the importance value already, sorting directly by distance is no longer appropriate.
 +
** The importance penalty to targets under a forcefield is now waived, if the system we are choosing targets for has bonuses against forcefields, and that bonus applies to the candidate.
 +
 
 +
* Auto-kite player ships closer for max damage, vs range based damage reduction.
 +
** Most recently, this was gated to only direct attack orders. But actually, this falls within normal kiting behavior as they use to exist.
 +
 
 +
* When showing an entities range-rings that will now include a magenta ring for incoming damage modifiers based on range.
 +
 
 +
* Dire GuardPosts have been reduced in target priority, for player ships, from BigThreateningWeapon to MidNasty.
 +
** While in a firepower sense they probably are as dangerous as a Mass Driver, for example; the player surely does not want them to be auto-frd targeted before everything else with a weapon.
 +
 
 +
* Fix to Tractor Array target priority.
 +
** The xml priority for tractor arrays adjusted from BigTurret -> LowGradeAnnoyance.
 +
** Ships were observed preferring to shoot tractors over actual ships or turrets shooting at them, while not even held by the tractor. Ships like raiders which are immune to the tractor for example should be flying past them to shoot something more valuable, but at least in some cases were not doing so.
 +
** Note that even with this change, tractor arrays are not simply ignored. They will be attacked, and may exceed the importance of something higher priority, if the alternative is much more distant. Also anything actually held by a tractor still gets a (ridiculously large) bonus to shoot the tractor, and will do so.
 +
 
 +
* PikeShot_Gold visual scale reduced.
 +
** This shot is used by quite a few different things, the stuff with 'pike' in their name.
 +
** Its scaling was causing it to actually appear extended -notably- far behind the thing firing it, confusing whether its an attack landing on the ship, or something it shot. Also it was just hugely more visible than it warranted (ie. the massive planet-covering blinding flash when a wave of pike guardians fire).
 +
 
 +
* Makeshift Drone fixes.
 +
** Death sfx changed from 'large ship' to 'normal ship'.
 +
** Target priority reduced to less than a normal ship.
 +
*** Enemies in pursuit mode should not stay in place just to shoot it over other targets.
 +
** Now considered a 'drone' not a normal ship. Note that Makeshift Drone is only ever spawned as a shot, by drone guns. It has a single suicide attack, like a missile.
 +
*** As a drone, no longer directly orderable.
 +
*** As a drone, no longer loadable (which would occur, awkwardly, for your Battlestation's makeshift turrets).
 +
 
 +
* Fix to 'Random' Starting Battlestation for Spire-Infused choosing templates marked to be ineligible (<code>weight="0"</code>).
 +
 
 +
* Encyclopedia Details-Of-Line fixes.
 +
** Now shows the correct line-cap for each mark level, and the strength of that combined, and the build-stats line for them.
 +
 
 +
* Strength Counting fix for stacks.
 +
** Was incorrectly skipping stacks which had at any point lost one of their ships.
 +
** The intent was to check if the ship was an incompletely claimed capturable, which it now does the correct way.
 +
 
 +
* At Local Planet 'Group' tooltip fix.
 +
** Hovering over a group containing enemy faction ships would sometimes describe them as your own ships, or as allied.
 +
 
 +
* At Local Planet bottom-most group 'Nobody' is now instead 'Neutral'.
 +
** This now includes other neutral-faction entities (beyond Natural Objects) which were previously missing entirely from the sidebar.
 +
 
 +
* Bastion worlds now properly marked for other factions to avoid.
 +
** This was the cause of ZA getting seeded occasionally on bastion planets.
 +
 
 +
* Fix to metal icons within 'metal losses at planet' incorrectly showing as strength icon.
 +
 
 +
=== Mods ===
 +
 
 +
==== (new) Devour<i>est</i> Golem ====
 +
* This replaces the Devourer Golem faction.
 +
* When hungry it is hostile to all, and notably <i><b>will be attacked</i></b> as its no longer untargetable.
 +
* When full it becomes neutral to all.
 +
 
 +
==== Points of Interest ====
 +
* Shortname change 'Point Interest' -> 'Phenomena'
 +
 
 +
==== Generator ====
 +
* Galaxy Setting > Map Population > Map Populator > Improved, is now the default rather than needing to be reset all the time.
 +
 
 +
==== Outguard Party ====
 +
* Changed galaxy settings defaults.
 +
** OutguardPerBeacon now 1 (was 2)
 +
** OutguardToSeed now 6 (was 5)
 +
** OutguardCostScaling now 0.25 (was 0)
 +
 
 +
=== Coders ===
 +
 
 +
* Improvements to how we visualize the targets of an entity's weapon systems.
 +
** Formatted tooltips are now capable of showing the targets of a system, as an indented list in a block at the end of its section. The priority calculated for each is also shown. These are shown based on preexisting debug settings being turned on. This block had been disabled up until now for formatted tooltips, other tooltip do it in their own style.
 +
** When showing an entities orders (which is a preexisting key hold) the lines draw between the entity and the targets of all its systems are now faded in alpha as it iterates from first to last in the prioritized list. Also, the FRD target is now drawn last, and with a different color (white). Also we now show a line to the kite-target used last in movement planning, since this is not necessarily the same and otherwise is much less visible unless drawn at the end.
 +
 
 +
* Protect against divide by zero in EntitySystem.CalculateDamage.
 +
** If the reload time is zero for some reason, that means the DPS is zero, as it doesn't operate on "time" at all.
 +
 
 +
* Fix to messages in debug log running together. They now end with a newline, instead of being prefixed by one.
 +
 
 +
* Error popup improvement
 +
** If error popup is already shown when a new error occurs, log but do not replace the current one being shown.
 +
 
 +
* SeedArgs overload to IMapPopulator and SeedEntityAlgorithm
 +
** This adds several new features when seeding things, at the same time as making future additions easier to do.
 +
** In particular the following optional arguments are now supported: GetHasSimilar, OnSeeded Callback, SeededPlanets, and SeededEntities.
 +
 
 +
* Added extension method Faction.GetCommonAllegiance() and enum CommonAllegiances to make working with the typical string values of Faction.Allegiance easier.
 +
** Each value of this enum corresponds to one of the various helper methods in AllegianceHelpers.
 +
** ie, Faction.Allegiance"Friendly To Players" == CommonAllegiances.FriendlyToPlayers == AllegianceHelper.AllyThisFactionToHumans()
 +
 
 +
* Added GameEntityTypeData.HideFactionName set like so 'hide_faction_name="true"'.
 +
** This does not affect the result returned by Squad.GetFactionDisplayName nor anything other than the top line of the entity's tooltip.
 +
 
 +
* The new way to delist/hide/disable a mod is by having a 5th line in its ModDetails.txt with the text 'disabled'.
 +
** ModIsDisabled.txt, ModIsOffByDefault.txt, and ModIsSaveSafe.txt are no longer used.
 +
 
 +
* Fix issues with the 'AlwaysOn' debug setting for ship radii.
 +
 
 +
* ArcenSetting(s) can now define an int based dropdown's names and values in xml.
 +
<pre><!-- example usage -->
 +
<setting ...
 +
  type="IntDropdown"
 +
  default="0"
 +
  option_names="Normal,Throttle,Suspend"
 +
  option_values="0,1,2"
 +
</setting></pre>
 +
 
 +
* <code>rounding=".."</code> attribute now supported for any int type settings. It's value is just an int, which the final value will always be divisible by.
 +
* <code><show_if></code> element now works on bool type settings (by using <code>int_val="1"</code> or <code>int_val="0"</code>).
 +
 
 +
* Added logging/debug helpers: extension method <code>TypeNameAndMethod(this Object)</code> and static method <code>LOG.MethodName()</code>.
 +
<pre>// example usage..
 +
LOG.Msg("Error in {0}() ..", this.TypeNameAndMethod());  // if within an instance method
 +
LOG.Msg("Error in {0}() ..", LOG.MethodName());          // if within a static method</pre>
 +
 
 +
* You can now include a type+weight directly in the xml definition of an AIShipGroup. This is much easier than having a ton of separate partial records.
 +
<pre><!-- example usage -->
 +
<group ... >
 +
  <include id="[?]" name="[type]" weight="[int]"/>
 +
</group></pre>
 +
 
 +
== 5.592 Hotfix ==
 +
(Released March 17th, 2024)
 +
 
 +
=== General ===
 +
* Fix to exception spam in new games about "PerFrame_CalculateEffectiveFleetData"
 +
* If you save your own quickstarts, they will go in PlayerData/QuickStarts and appear at the bottom of the list in a category "Mine".
 +
** You can do this by using the following command in-game: [enter]cmd:makequickstart
 +
 
 +
== 5.591 Exception Tidying ==
 +
(Released March 16th, 2024)
  
 
=== General ===
 
=== General ===

Latest revision as of 15:59, 27 April 2024

Contents

Reporting Bugs

  • Any bugs or requests should go to our mantis bugtracker
    • 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

What Happens Now That The Game Is "Done?"

The last of the AI War 2 DLCs is now out, the Complete Edition is out, and you can read a retrospective of the entire project if you would like to.

At this point, we have moved on to other projects aside from bugfixes and balance tweaks and modder-support. That said, since modders and volunteers are still making updates, there tend to be patches every 1-2 weeks on average.

We expect AI War 2 to have a long life if AI War Classic is anything to go by. The game is in a really good state, and we want you to be able to enjoy it for years and years.

5.599

(in progress)

5.598 Sidekicks And Elderlings

(Released April 27th, 2024)

General

  • Elderlings which are immune to zombification are now likewise immune to hostile-to-all zombification.
  • Elderlings not owned by the elderling faction (ie. nanocaust) no longer show in tooltip "No per unit data?".
  • Ships not fully built now do not take hostile attrition damage.
  • Ships not fully built now immune to capture.
    • Includes: remains, not fully claimed, crippled, or has self-building metal remaining.
  • Show reason immune to capture, if debug tooltips
    • This only affects formatted.
  • Clear deatheffects on remains.
    • If something is currently remains, clear any death effect damage on it.

Sidekicks

  • Dyson Sidekick default stronghold is now Zenith
  • The Spire Sidekick can now get science/hacking by killing ships
    • For some synergy, Nadir ships (generated by the Dark Zenith) and Reapers (generated by the Dyson Sidekick) now grant science to the Spire Sidekick
  • Add some new unique turrets to the Miskatonic AI Type
  • Dark Zenith Sidekick
    • Tweak the DZ sidekick science generation to match the spire sidekick's
    • Some nerfs to the DZ Sidekick; they now produce fewer ships each time units are created. This rolls back half of the buffs given previously (there were also some economic buffs)
  • Nadir (enemies to the DZ Sidekick) tweaks
    • Add a new Nadir ship
    • Fix a bug where not enough Nadir ships were spawning.
    • Add and adjust Nadir balance levers

5.597 Sidekick Bits

(Released April 20th, 2024)

  • Dark Zenith Sidekick
    • Doombombs no longer join fleets
    • Tweak the Epistyle hacking text
    • Nerfs to the Nadir

5.596 Deflicker

(Released April 13th, 2024)

General

  • Fixed a flicker in the protection status of an entity, if under more than 5 forcefields.
  • Regular elderlings should no longer be zombifiable, as intended in last update.
    • They were immune, briefly. But then would lose track of their own shipclass and not know they were immune anymore.
  • The Ships sidebar currently indicates that a flagship is in Transport mode with a blue (T) in the Watched/Local fleet section.
    • There's now an "Experimental" setting (under "Game") to make the (T) indicate "Percentage of ships loaded" by its colour; it will go from Red (nothing loaded) to green (fully loaded). I regularly want to be able to monitor whether remote flagships are fully loaded, and this will allow me to do so easily.

Sidekicks

  • DZ Sidekick
    • Fimbulwintering a planet requires a local flagship
    • Nadir Bases now mark up over time, and spawn stronger ships as they mark up
    • Epistyles can now be told to send the ships they make to a particular flagship, instead of just "the nearest flagship" via the hacking menu
    • Flagships on the map can no longer be claimed from planets controlled by hostile factions
  • Spire Sidekick
    • Claimable flagships now come with modules, and can no longer be claimed from planets controlled by hostile factions

5.595 Deprotect

(Released April 6th, 2024)

General

  • Elderling Zombify/Nanocaust Fix
    • GameEntity_Squad.GetImmuneToCaptureReason() was incorrectly treating SpecialEntityType.None as immune.
    • Elderlings were inconsistently marked as either normal or can_be_zombified_and_similar="true".
    • This shipclass attribute applies to both zombify and nanocast effects, but due to some changes in how immunity is now handled (by obeying that shipclass attribute) elderlings needed their shipclass to be tweaked.
  1. Base Elderlings (of the faction): Immune to zombification, can be nanocaust.
  2. Hacked forms and Transcendental: Immune to both zombification and nanocaust. As these cause AIP on death, i doubt people would enjoy having them die twice.
  3. AI Elderlings: Can be zombified, can be nanocaust. Exception: the biggest tier of ai elderlings which it uses as exo leaders are immune to both nano/zombify - to match the theme of all other exo-leader ships.
  • Also, by doing this immunity via a 0x multiplier to specific death-effect damage types, this means the elderling will only show as having nano/zombify damage points on it, if its actually capable of being turned (for either effect, individually).
  • Tractor Fixes
    • Reverse-tractors now actually do pull the ship with them along with movement of the target, whereas before they would only remain in range do to their own efforts at kiting, which did not look very 'tractored' at all.
      • Note that this is done as a positional offset applied at the beginning of movement planning, and does not prevent the ship with the reverse tractor from disengaging if ordered to do so.
    • Also fixed, ships with reverse tractors will no longer decollide with the ship they are holding on to.
    • Also fixed, all tractors now check range the same way weapons do (considering radius of self and target).
      • Mosquito Corv. was found to not be in range to tractor its own target at its own kite distance, despite both the same range (this would only occur if the target radius is big enough, but since its tractors only work on >5 mass, they are pretty big).
    • Also fixed, now by default ships do not kite at all relative to ships that are held in our own tractor, or that hold us in their reverse tractor. Doing so would obviously be futile. For specific entities which had this behavior before, intentionally (tackle drone, deathgrip drone) -- they have been marked with a new attribute to enable this behavior custom_KiteEvenTractored="true".
    • Also fixed in the process of this, knockback will now occur for some entities that would have been skipped for unclear reasons before (entities with no kite target, entities paralyzed).
    • Also fixed, ships held by tractors are no longer allowed to do decollision movement. Since doing so looks super bizarre and could even break the tractors lock.
  • Formatted tooltip improvement to how target requirements are shown.
    • This applies to tractors, gravity field, and other such non-weapon systems which have stat requirements for a target to be affected.
    • Previously shown as "| req.[stat]>N" is now "| if [stat]>b" and also I'm using an up/down arrow rather than >/< symbols.
  • Fixed memory leak which occurred since last update. Details of this and other unrelated memory use improvements in Coders below.

Coders

  • Misc mod .csproj edits.
    • MacrophageHistriocytes projects converted to use Base.props
    • RadiantMaps converted to use Base.props
    • All starkelp mods fixed to not show up as modified binaries every time they build.
      • The important part of doing this is <Deterministic>true</Deterministic>, but also, giving a unique intermediate directory for the base/deep projects which share the same folder. Otherwise, they will dirty each others obj/ folder and always need to build every time despite literally nothing changing.
  • Base.props and batchScripts changes.
    • Fix to copy script so it does not error if the path contains spaces (if from steam install location, it usually will).
    • Base.props in root is gone.
    • XmlMods/Base.props is improved.
      • Arcen projects which exist will be project references.
      • Ones that do not exist, will be assembly references.
  • Squad memory usage reduction re: PotentialTargetsToPriorityLookup dictionary
    • This was added in the last update and is the cause of memory use growing more than before.
    • Is now a DoubleBufferedDictionary<int,int> instead of ConcurrentDictionary.
    • Is cleared/released unless debug setting 'show target info' is on.
  • Squad memory usage reduction re: ProtectingShields lists
    • Removed GameEntity_Squad.ProtectingShields_NoDamageReduction
    • Removed GameEntity_Squad.ProtectingShields_ReduceDamage
    • Added GameEntity_Squad.ProtectingShields (DoubleBufferedList<LazyLoadSquadWrapper>)
    • Added GameEntity_Squad.IsUnderDamageReducingShield (DoubleBufferedValue<bool>)
    • Instead of two lists squad now has a single list and its capacity is capped at 5. If a squad is under any shield which does reduce damage, there is a separate double-buffered bool for that. Note that the bool will always have the correct value of 'true' if the squad is under any shield which does so, even if that shield is #6 and therefore not included in the list.
  • Squad memory usage reduction re: AreaBoosters_ShotEvaluated list
    • This list is now capped at 3 items. Knowing one is protected by 20+ shot attractors is not actually useful information and allows this list to grow into significant size that is permanent until world shutdown.
  • Squad memory usage reduction re: AreaBoosters_NotShotEvaluated list
    • GameEntityTypeData.ProjectsAreaBoost_NotEvaluatedAtShot is a bool that is not actually tied to any xml attribute, and has been removed.
    • GameEntity_Squad.AreaBoosters_NotShotEvaluated is a list which would contain such entities within range to boost/affect them in some way, but no such effects exist nor code that even iterates the list, and hence has been removed.

Sidekicks

  • Some nerfs to the Reapers (the enemy of the Dyson Sidekick), they're a bit overtuned
  • Spire Sidekick
    • The Spire Sidekick will find its own variants of the Zenith Golems that it can use as Flagships
    • This helps make them more paowerful/interesting, but with a relatively small number of ships; this is beneficial to MP performance.
  • DZ Sidekick
    • The DZ has a bug where their upgrade to give themselves more Epistyles per planet was not working. This bug is now fixed for the DZ Sidekick.
      • The base game behaviour is unchanged, since I didn't want to rebalance the DZ lategame; if it's desired to extend this fix to the base game DZ its very easy in XML
    • The DZ Sidekick economy will now work a bit better; a few more resources, and things are a bit cheaper
    • The DZ Medusa flagships are buffed
    • The DZ Sidekick now uses Hacking to claim Flagships and fimbulwinter planets
    • Periodically, new AI allies, the Nadir, will spawn; killing them will grant science and hacking to the DZ Sidekick (and science to the Necromancer)

5.593 Devourest

(Released March 23rd, 2024)

General

  • Gracefully handle Profile future version.
    • Your profile has the game-version in it, though it does not actually depend on it otherwise. It is not unusual for coders to end up with a 'future' version the game saved into ones profile. Actually the same thing will happen if you rollback to an earlier steam version. When this happens, instead of deleting the whole profile and ALL personal settings .. just pretend its the current version and message that it did this to the log.
  • Added Personal Setting > Performance > Behavior if not Focused.
    • By default is 'Normal' but can also be 'Throttle' or 'Suspend' to reduce cpu/gpu usage when appropriate.
  • Target Planning Fixes
    • Fixed a case where low importance targets were being picked above better choices, do to sorting not being done based on that importance value. Since distance is now part of the importance value already, sorting directly by distance is no longer appropriate.
    • The importance penalty to targets under a forcefield is now waived, if the system we are choosing targets for has bonuses against forcefields, and that bonus applies to the candidate.
  • Auto-kite player ships closer for max damage, vs range based damage reduction.
    • Most recently, this was gated to only direct attack orders. But actually, this falls within normal kiting behavior as they use to exist.
  • When showing an entities range-rings that will now include a magenta ring for incoming damage modifiers based on range.
  • Dire GuardPosts have been reduced in target priority, for player ships, from BigThreateningWeapon to MidNasty.
    • While in a firepower sense they probably are as dangerous as a Mass Driver, for example; the player surely does not want them to be auto-frd targeted before everything else with a weapon.
  • Fix to Tractor Array target priority.
    • The xml priority for tractor arrays adjusted from BigTurret -> LowGradeAnnoyance.
    • Ships were observed preferring to shoot tractors over actual ships or turrets shooting at them, while not even held by the tractor. Ships like raiders which are immune to the tractor for example should be flying past them to shoot something more valuable, but at least in some cases were not doing so.
    • Note that even with this change, tractor arrays are not simply ignored. They will be attacked, and may exceed the importance of something higher priority, if the alternative is much more distant. Also anything actually held by a tractor still gets a (ridiculously large) bonus to shoot the tractor, and will do so.
  • PikeShot_Gold visual scale reduced.
    • This shot is used by quite a few different things, the stuff with 'pike' in their name.
    • Its scaling was causing it to actually appear extended -notably- far behind the thing firing it, confusing whether its an attack landing on the ship, or something it shot. Also it was just hugely more visible than it warranted (ie. the massive planet-covering blinding flash when a wave of pike guardians fire).
  • Makeshift Drone fixes.
    • Death sfx changed from 'large ship' to 'normal ship'.
    • Target priority reduced to less than a normal ship.
      • Enemies in pursuit mode should not stay in place just to shoot it over other targets.
    • Now considered a 'drone' not a normal ship. Note that Makeshift Drone is only ever spawned as a shot, by drone guns. It has a single suicide attack, like a missile.
      • As a drone, no longer directly orderable.
      • As a drone, no longer loadable (which would occur, awkwardly, for your Battlestation's makeshift turrets).
  • Fix to 'Random' Starting Battlestation for Spire-Infused choosing templates marked to be ineligible (weight="0").
  • Encyclopedia Details-Of-Line fixes.
    • Now shows the correct line-cap for each mark level, and the strength of that combined, and the build-stats line for them.
  • Strength Counting fix for stacks.
    • Was incorrectly skipping stacks which had at any point lost one of their ships.
    • The intent was to check if the ship was an incompletely claimed capturable, which it now does the correct way.
  • At Local Planet 'Group' tooltip fix.
    • Hovering over a group containing enemy faction ships would sometimes describe them as your own ships, or as allied.
  • At Local Planet bottom-most group 'Nobody' is now instead 'Neutral'.
    • This now includes other neutral-faction entities (beyond Natural Objects) which were previously missing entirely from the sidebar.
  • Bastion worlds now properly marked for other factions to avoid.
    • This was the cause of ZA getting seeded occasionally on bastion planets.
  • Fix to metal icons within 'metal losses at planet' incorrectly showing as strength icon.

Mods

(new) Devourest Golem

  • This replaces the Devourer Golem faction.
  • When hungry it is hostile to all, and notably will be attacked as its no longer untargetable.
  • When full it becomes neutral to all.

Points of Interest

  • Shortname change 'Point Interest' -> 'Phenomena'

Generator

  • Galaxy Setting > Map Population > Map Populator > Improved, is now the default rather than needing to be reset all the time.

Outguard Party

  • Changed galaxy settings defaults.
    • OutguardPerBeacon now 1 (was 2)
    • OutguardToSeed now 6 (was 5)
    • OutguardCostScaling now 0.25 (was 0)

Coders

  • Improvements to how we visualize the targets of an entity's weapon systems.
    • Formatted tooltips are now capable of showing the targets of a system, as an indented list in a block at the end of its section. The priority calculated for each is also shown. These are shown based on preexisting debug settings being turned on. This block had been disabled up until now for formatted tooltips, other tooltip do it in their own style.
    • When showing an entities orders (which is a preexisting key hold) the lines draw between the entity and the targets of all its systems are now faded in alpha as it iterates from first to last in the prioritized list. Also, the FRD target is now drawn last, and with a different color (white). Also we now show a line to the kite-target used last in movement planning, since this is not necessarily the same and otherwise is much less visible unless drawn at the end.
  • Protect against divide by zero in EntitySystem.CalculateDamage.
    • If the reload time is zero for some reason, that means the DPS is zero, as it doesn't operate on "time" at all.
  • Fix to messages in debug log running together. They now end with a newline, instead of being prefixed by one.
  • Error popup improvement
    • If error popup is already shown when a new error occurs, log but do not replace the current one being shown.
  • SeedArgs overload to IMapPopulator and SeedEntityAlgorithm
    • This adds several new features when seeding things, at the same time as making future additions easier to do.
    • In particular the following optional arguments are now supported: GetHasSimilar, OnSeeded Callback, SeededPlanets, and SeededEntities.
  • Added extension method Faction.GetCommonAllegiance() and enum CommonAllegiances to make working with the typical string values of Faction.Allegiance easier.
    • Each value of this enum corresponds to one of the various helper methods in AllegianceHelpers.
    • ie, Faction.Allegiance"Friendly To Players" == CommonAllegiances.FriendlyToPlayers == AllegianceHelper.AllyThisFactionToHumans()
  • Added GameEntityTypeData.HideFactionName set like so 'hide_faction_name="true"'.
    • This does not affect the result returned by Squad.GetFactionDisplayName nor anything other than the top line of the entity's tooltip.
  • The new way to delist/hide/disable a mod is by having a 5th line in its ModDetails.txt with the text 'disabled'.
    • ModIsDisabled.txt, ModIsOffByDefault.txt, and ModIsSaveSafe.txt are no longer used.
  • Fix issues with the 'AlwaysOn' debug setting for ship radii.
  • ArcenSetting(s) can now define an int based dropdown's names and values in xml.
<!-- example usage -->
<setting ...
   type="IntDropdown"
   default="0"
   option_names="Normal,Throttle,Suspend"
   option_values="0,1,2"
</setting>
  • rounding=".." attribute now supported for any int type settings. It's value is just an int, which the final value will always be divisible by.
  • <show_if> element now works on bool type settings (by using int_val="1" or int_val="0").
  • Added logging/debug helpers: extension method TypeNameAndMethod(this Object) and static method LOG.MethodName().
// example usage..
LOG.Msg("Error in {0}() ..", this.TypeNameAndMethod());  // if within an instance method
LOG.Msg("Error in {0}() ..", LOG.MethodName());          // if within a static method
  • You can now include a type+weight directly in the xml definition of an AIShipGroup. This is much easier than having a ton of separate partial records.
<!-- example usage -->
<group ... >
   <include id="[?]" name="[type]" weight="[int]"/>
</group>

5.592 Hotfix

(Released March 17th, 2024)

General

  • Fix to exception spam in new games about "PerFrame_CalculateEffectiveFleetData"
  • If you save your own quickstarts, they will go in PlayerData/QuickStarts and appear at the bottom of the list in a category "Mine".
    • You can do this by using the following command in-game: [enter]cmd:makequickstart

5.591 Exception Tidying

(Released March 16th, 2024)

General

  • Fix a bug where Spire Infused Empire couldn't hack Debris
    • Thanks to The Grand Mugwump for reporting
    • Note: as a workaround, you can update the Expansions/1_The_Spire_Rises/GameData/Configuration/PlayerTypeData/TSR_PlayerTypes.xml file and add the CanDoSpireHacks tag to the SpireInfusedEmpire
  • Fix a very old (from initial implementation) bug where Sidekicks could not do the "Track Elderling" hack. This was particularly annoying for the Necromancer Sidekick.
    • I suspect a number of people have complained about this over the years
  • Fix a remaining exception for MP clients related to zombies.
  • Fix a (benign) exception related to TextVarMap when xml reloading.
  • Removed some unhelpful logging.

Mods

Points of Interest

  • Fixed exception from the Imperial AI's Shipyard.
    • Thanks to @ussdefiant for the report (and trying POI).

Sidekicks

  • The AI will spawn some extra guardians against the DZ Sidekick
    • These extra guardians can vbe killed by the DZ Sidekick for science
  • The "Zombies go to necromancer" Necromancer Galaxy setting is moved to the Sidekicks mod
    • It's not particularly supported, and can get base game players into trouble

5.590 Informative Quickstarts

(Released March 9th, 2024)

General

  • Fixed order of campaigns listed in the load/save window to again be in order of most recently modified.
  • Extended the metadata associated with saved games with a few new fields.
    • Author, PlayerType, Difficulty, IsIronman, IsCommunity
  • Quickstarts listed in the qs window now show some of that additional metadata on the line to make scanning of differences easier.

Sidekicks

  • Templar Shield Mode now builds defensive structures more quickly
  • DZ Sidekick
    • You can now specify "High Priority" mode for epistyles, which will make the DZ prioritize sending resources to those epistyles
    • DZ Sidekick can now get science/hacking from killing things. This is not used yet.
    • DZ Sidekick will try to build its structures further from wormholes
    • The hack to change epistyle production now can include descriptions for what the resource conversion does
  • Spire Sidekick
    • Spire Sidekick can now hack for relics, which allows it to be played without a human empire

Quickstarts Continued

  • Accept No Imitations, added in the last patch, now correctly shows that the TSR and ZO expansions are used/required.
  • Two more quickstarts emphasizing Brutal AIs and the Kite Master logic for Warden/Hunter. Royal Pains in the Harder category for vanilla is a Royal/Golemite pairing, and in the Extreme category you can find Skirmisher/Jabberwock for the ambitious.
  • One of the original quickstarts, Subversion in the Harder category, has been updated to have the Nanocaust factions set to Early Game invasion. Invasion time settings were not available at the time this scenario was created. Thanks to the original author RocketAssistedPuffin for his kind permission to make this adjustment. It can be tweaked more if necessary.

5.589 Lone Zombie, Progressive Quickstart

(Released March 2nd, 2024)

General

  • Fix to double zombies.
  • Fix to client-side exception spam coming from several death effects, in multiplayer.
  • Quickstart menu improvements.
    • You may now see the mod and dlc requirements for individual quickstarts.
    • This is particularly useful for Community but also other categories which contain a mix of dlc requirements.

More Quickstarts

  • Most significantly, the Quickstart Categories have been revamped and the quickstarts reorganized in them. The goal of this has been to present a reasonable progression of difficulty and complexity, as opposed to what had become more of a thematic hodge-podge as the various expansions and other features were added. Thanks to Dismiss for the under-the-hood work that made this possible!

Also:

  • Small tweaks and typo corrections to various quickstart descriptions
  • A new 'Archived' category of quickstarts has been added. This contains quickstarts deemed to be unbalanced, out of date, or similar due to various changes in the game over time. They are preserved here so that players can still enjoy them if they wish, but are not presented as still being relevant.
  • Community > You Belong To Us, by zeus, was falsely advertising a Dark Spire faction. They have been added to this scenario.
  • A new quickstart, Luck of the Draw, can be found in the Moderate category. It demonstrates a number of random/roguelike settings.
  • Another new one, Get Off Their Lawns, under Expansions Intro. It's features Reservist AI, the Onslaught fleet, and some fairly low-level Zenith Architrave as an entry-level experience of them.
  • Lord of Nothing has generously contributed Accept No Imitations, available in the Harder category. It features both Dark and Fallen Spire, and is a step up in challenge from the introductory Spire quickstarts.

Sidekicks

  • Continued improvements to DZ Sidekick mark levels
  • Improve the economic overview in the hacking menu
  • Shield Templar can now be toggled on/off mid game

5.588 Zenith Consistency

(Released February 24th, 2024)

General

  • The long awaited Death-Effect fix.
    • Death-Effect damage is now applied before regular weapon damage.
    • Squads losing ships beyond the first now properly continue triggering on-death effects.
  • Fix to hack-panel showing blank buttons for hacks which targeted the planet (ie. hack for vision).
  • Vanilla tooltips no longer show bottom lines with debug information.
    • This includes the "autotargeting NPC_B .." stuff and "expected damage incoming".
    • Now only included when the debug entity tooltip setting is on.
  • Fix a longstanding bug where if you got unlucky with how the DZ planets spawned, they might never link into the galaxy
    • Thanks to The Grand Mugwump for reporting

Quickstarts

  • Some quickstarts have been edited/added. Thanks @StrategicSage
  • 1-Basic > Helping Hands description changed to accurately describe the factions present, and Nanocaust invasion now happens at the start to ensure they actually do have time to help.
  • 2-Moderate > A Rite of Passage; a new quickstart with the traditional dual 7 AIs setup.
  • 2-Moderate > The Spire quickstart has been split into two; Infused Friends Arise and Fallen Friends Arise to represent both Spire variants. They also have been changed from Realistic to the more Spire-appropriate Bubbles map type.
  • 2-Moderate > Zany Zenith; a new quickstart featuring the Zenith Dyson Sphere and Zenith Trader, which previously were not introduced in any of the 'official vanilla' quickstarts.
  • 2-Moderate > Mobile Interests; a new quickstart introducing the Ark Empire player type.
  • 2-Moderate > Two new quickstarts featuring the Spire Spheres; The Splendid Splinter includes the Splintering Spire, and Dyson Dynamics has the spheres without the Splinter War.
  • 2-Moderate > Agents of Chaos, another new scenario, features the controversial Chromatic Horror. Partake at your own risk.
  • 3-Harder > The Swarm; An unannounced Macrophage infestation exists which does not appear to be intentional. They have been banished from this particular galaxy with extreme prejudice.

Sidekicks

  • The DZ Sidekick can now "Lock In" their economic choices by right-clicking the hacking menu when making a choice for an Epistyle
    • This means that the epistyle will continue to try to build this thing until the player requests otherwise
    • The previous behaviour ("build just this thing, then the faction will continue to make its own choices) is preserved with a left-click

5.587 Deguardianing

(Released February 20th, 2024)

General

  • Guardian reinforcements 'fixed' to occur in previous update have been reverted. Apologies.
    • If you have games started in last version, you may have some AI planets with frankly unapproachable amounts of strength, but unfortunately this will not retroactively fix reinforcements already made.

Mods

Sidekicks

  • DZ Sidekick
    • Show an epistyle's current production in the hacking menu
    • Fix some additional problems with DZ Sidekick mark levels

5.586 More Polish

(Released February 17th, 2024)

General

  • Fix to AI never buying guardians with its reinforcement budget.
    • Warning: This effectively increases the AI's planetary reinforcement cap, since the cap for guardians was sitting unfilled. Wild-ballpark figure.. +25% defenders at maximum.
    • This bug has apparently existed for 5 years! I didn't even know there was code trying to buy guardians for reinforcements..
    • Great find @Arphar!
  • Fix to ships not approaching for full damage vs targets with high (but not full) damage reduction at range.
    • Ships which are not under player control, or not orderable, always do this (ie, drones, ai ships).
    • Ships which ARE do this only when the attack order came from the player.
      • Note that targets which take NO damage beyond a range will still be approached to within that, even without direct orders.
  • Fix to sniper range ships kiting away from their target, in some situations.
  • Fix to CPA-bunkers not spawning in games without a human player.
  • Fixed an index out of range exception that could happen in GetCanHitByDesireOrNot_AndIAlreadyKnowIAmAWeapon.
    • Thanks to The Grand Mugwump for reporting.
  • Hardened a general method in the linked lists that was able to have cross-threading issues surrounding the collections that the entity was actually in.
    • Have seen a few reports of this in the last months, and I think it's due to the automatic list compression code, as a fairly rare byproduct of that. This fix should resolve it.
    • Thanks to The Grand Mugwump for the most recent report.

Mods

  • Classic Fusion now playable, again.
  • Generator mod now playable, again.
  • Sappers Alternations mod now playable, again.

Sidekicks

  • Dark Zenith Sidekick
    • Fix a bug where DZ Sidekick ships were always mark level 1
    • The DZ Sidekick now has its economy balanced differently from player-allied Svikari
    • When hacking an epistyle, show the current resource conversion and inventory for that epistyle, making for easier choices.
    • Split the economic overview to show upgrades separately (left vs right click to the UI)
  • Add a new Necromancer option, "Shield Templar", available in the game lobby
    • This will rebalance the Templar to be much more powerful on the defense, but less powerful on offense

5.585 Sidekick Updates

(Released February 10th, 2024)

  • Fix to Difficulty of Splintering Spire Spheres not being properly applied after a reload.
  • Updated it so that RapidAntiLeakPool errors are now just log warnings. These are very rare, but tend to scare players when they see them, and they are only a problem if there are a ton of them happening -- in that case it's for helping a modder fix their thing.
    • So it now says that it's a warning only, sends it to the log only, and doesn't show itself to the player at all. The only real use for this is if a log has a ton of these in there, some modder has made a mistake in their code.
    • Thanks to ColonelBlimp for reporting.

Mods

Sidekicks

  • Dyson Sidekick
    • When the AI drills a Cuendillar Asteroid to 0 cuendillar remaining, the asteroid should now despawn
    • Thanks to MadArtillery for reporting
      • This fix is untested, but should work
  • Dark Zenith Sidekick:
    • Improve the DZ sidekick's economic report; some defensive code, improve the data
    • Dark Zenith Flagships now start at a low level and upgrade by killing enemies.
      • Additional Flagships can be captured on the map by hacking for them.
  • Spire Sidekick
    • Add a Spire Sidekick. It plays like the Fallen Spire faction, but it's a sidekick with a unique player controller. Requires a Human Empire in the game.
    • It does not use metal or energy, and does not contribute toward the human empire; as a result, it is a strict nerf by comparison to a Human Empire + Fallen Spire.

5.583 MP Hardening

(Released February 3rd, 2024)

  • Multiplayer: added in a new protection mode that prevents clients from experiencing a bunch of errors during the a full sync from the host.
    • Previously there were quite a few errors that would happen in these cases, most of them harmless, but some of them able to cause crashes. Now those errors no longer happen.
    • Thanks to Jaydak for reporting, and to Dismiss for diagnosing the specific issue.
  • Multiplayer: hardened a variety of methods against exceptions that could happen on clients in particular. Although, some of these things could have happened to hosts or outside of multiplayer as well.
    • Thanks to Jaydak for the log with the reports, and to Dismiss for some of the hardening.

Mods

Sidekicks

  • DZ Sidekick updates
  • Player-choosable DZ Upgrades are now correctly limited based on prereqs
  • Player choosable DZ resource conversions now correctly handle different resource costs
  • The DZ Sidekick is now actually limited by the Number of Harvesters allowed by the Difficulty XML.
    • The base game's version of the DZ can still build over the cap (preserving the base game behaviour)
  • Some DZ utility functions are moved to BaseInfo instead of being in DeepInfo; no behavioural changes

5.582 Tuning

(Released January 26th, 2024)

General

  • Fix to ZA Castra (which offers ZA ship lines) inappropriately granting invulnerability to ZA Spawner.
  • fix to tachyon beams not being disabled by perf setting.
  • Fix a typo in the AI Cyclopean Elderling description text
    • Thanks to Bossman for reporting
  • Fixed a bug with the experimental tooltips ship class display, where immunities would not be colored and instead have a "555555" in front of them.
  • WarSieger and WarHarvester (outguard) now arrive in pursuit mode.
  • Fix to frag mines (spawned from fragmenting minefield) to start in pursuit.
  • Removed MSBuild from being a part of the distributed files (for modder convenience), because Malwarebytes was incorrectly flagging this as a trojan, and then people were very confused and/or concerned. Instead there is now a text file for modders which explains where they can get what they need.

Mods

  • Fixed a bug in sniper turret ring autobuilding which in some cases placed the autobuilt turrets everywhere within the system instead of just at the outter rim due to switched parameters in the the GetEntitySpawnPoint_GravityWell() function.
  • Fixed a bug where child units that were not orbiting or producing children themselves would not die if the parent died even if the XML flag for it was set up.
  • Fixes and improvements to the Cost-Based Ship Spawner:
    • A typo in one of its functions fixed.
    • CurrentSpawnTarget's setter is no longer protected.
    • It has 2 new functions: DrawNextCurrent() and ChainRecordCurrentAndSetNext().
    • The WriteToBuffer() function is now hardened against null pointer exceptions.

Sidekicks

  • Dyson Sidekick
    • Tweak some metal costs to make players less apt to run out of metal
    • Sphere flagships are better at retreating
    • Tweak some flagship gimbal sizes
  • Dark Zenith Sidekick
    • Clicking on the Hacking icon in the resource bar now shows DZ Economic stats
    • You can now modify Epistyle production with a hack

AMU

  • Fixed a bug in AJEA where if the maximum capacity of a ship line was negative AJEA's energy plan would mess up. This seems to have been happening if an economic station was switched to a military station.
  • Fixed another bug in AJEA where due to some false variable and method naming and splitting two parts of the "how much free energy to I even need" calculation into two different methods the amount was calculated incorrectly. This could lead to AJEA freeing up less energy than required to actually build those ships.
  • AMU's Fireteam implementation now allows its fireteams to deathball, so that it does not get into a fight with the Vanilla Fireteam code whether or not the targets given are actually valid.

Kaizers Marauders

  • Updated the mod to the current state of development. Extraordinarily limited pre-alpha is now possible, in theory.

5.581 Mod Updates

(Released December 21st, 2023)

General

  • Human Resistance faction description now says "also known as HRF" for clarity with a few other places which reference it that way.
  • Human Resistance faction Intensity setting tooltip improved (again) thanks to @CRCGamer.

Formatted Tooltips

  • Regeneration: now states it is 'to max' and no longer ends with a duplicate period.
  • Tractor/Grapple shown as "1x/2x Beam(s)" so correct for any count.
  • Metal storage number now correct, was showing metal production.
  • Energy production no longer shown with a "/s" suffix.
  • Fix to text overlap for tooltips of entities which grant lines to a bolstered fleet, when expanded to show that lines tooltip.
    • Also they now show the sub-entity tooltip at the count actually granted.
  • Fix to "Requires: Spire City + and x casings"; meant to be "Requires: Spire City and x casings."

Mods

AMU/Ship-Lines

  • Fix to xml parsing exception on startup.

Lore

  • Necro homes and bodyguard short-names as they appear in 'at local planet' or when listed as members in the tooltip of a fleet leader have been adjusted to clarify what is a Home and what is an actual Ship.
    • This change was previously to vanilla but has been moved here instead.

5.580 Curve League

(Released December 13th, 2023)

General

  • Experimental fix to death of stacks.
    • Can be enabled in (personal) Settings > Debug > Experimental > Fix to Death-Effects for Stacks.
    • Please do try it and please do tell us if it helps or has harmful side-effects.
  • Fixed a bug where game entities would not take any weapon DPS into account when calculating their strength rating, undervaluing units with high DPS greatly.
  • Fixed an exception in the initial DPS calculation if the ShipClass was still null.
  • Added some more debug info and debug steps to the above functions.
  • Added some extra XML options for range and shot speed to fill some gaps. This has no effect on current gameplay but allows modders to use more varied range and shot speed settings.
  • Fix to encyclopedia task run on startup blocking shutdown.
  • Fix to munged notification text sometimes happening when there are multiples.
    • The shared character buffer used by all notifications is now ThreadStatic.
  • Fix to Corrosive GP being claimed by necromancer being hit by its own on-death shot.
    • There is a 2-frame delay before a converted gp is processed.
    • Entities with remaining Network_FrameToStartAnyProcessing can no longer be hit by aoe shot detonation.
  • Fix to member-lines checked previously staying checked when returning to member-swap window.
  • Fix to exception for hack rift tooltip, if shown from intel panel.
  • Fixed a bug where if a ship had a primary or FRD target locked it would continue firing at it even if the state of matter was longer the same, doing 0 damage but putting the weapon on cooldown.
  • Some necromancer ship/home names normalized, short names in particular.
    • Should be more clear what you are seeing within 'at local planet' and in fleet member lists of tooltips.
  • Human Resistance's tooltip description of its intensity setting edited.
  • Unified access to sprites/colors for terms (ie. AIP, Strength, Metal).
    • The actual sprite/color to use for each is also now defined in xml.
  • New xml table for defining a Curve.
    • Read: a plot of float values over time plus an overall easing function to apply.
  • New xml table for defining an Effect
    • Read: something that does custom rendering/animation in planet view.
    • It's lifetime is controlled by the creator, so it is not fire and forget, its allocate and animate.
    • These types are mostly just stubs at this point but will be used soon by mods.
  • CustomSystem(s) with UseStyle.Targeted now functional.
    • Read: a weapon that does something when targeted manually by the player at either a position or entity.

Experimental Feature

  • Opt-in setting in General (show advanced) > UX > EasyMode Ship Clicking.
    • This is an effort to improve the detection of what is under the cursor in planet view.
    • The radius of a ship is no longer a 2D circle but a sphere and the mouse is no longer a point on the ground but a ray.
      • Read: you can actually select things with the camera tilted.
    • There is now a minimum size in screen-space for a ships selectable sphere.
      • Read: at high zoom its no longer impossible to select engineers and metal harvesters.
    • Also: Drag selection now updates the selection as you perform it.

Try it here:

Easymodeshipclicking 2.png

Formatted Tooltips

  • List of fleet members no longer shows the centerpiece.
  • Spire city / necropolis fleet members list no longer shows a cap for things which cost sockets, and the fleet strength maximum also no longer counts them.
  • Socket and city mark level build requirements now shown nicely.
  • Things that grant lines to a bolstered fleet (ie, necro homes, spire thingumabobs) now show the granted thing's tooltip too, if it is at full detail or being seeing within a hacking choice popup.
  • Debug info now shows correctly (except weapon targeting which is not at all).
  • Weapon activity details formatting improved: more to the side and jumps around less.
  • Tooltips for necro player stuff less likely to wrap the top line.
  • Cloaking line abridged (no detailed sublines yet).
  • Tractor and reverse tractor (which is now labeled 'grapple-beam') lines reworked and finished.
  • Duplicated section for metal flows ongoing is gone.

Mods

Azaran Empire

  • Doubled T3 and quadrupled T4 costs -- there were too much of these compared to lower tiers after doing the math.
    • Notes: this also includes the advanced constructors, so is a pretty significant nerf.
  • Removed damage amplification from all troops except the Grand General.
  • Grand General :
    • Reduced damage amplification to 5% instead of 15%.
    • Doubled spawn rate and cap of units.
    • Changed weapon range to be higher and increase dmg taken by 25% instead of flat damage amplification.
  • Changed ranges around for commander type units.
  • Reduced tachyon for guard posts.
  • Greatly reduced maximum cap on structures.
  • Changed faction's color.
  • Added a material override to each of the faction's ships.

Universal Nemesis / League of Evil

  • Weapons now also have damage scaling. The amount gained is a percentage that is proportional to the percentage amount of hull gained compared to base hull.
  • Intensity now affects all units' stats. At Intensity 10, units have 100% of their base stats. This goes down by 10% for each intensity below 10, reaching 10% of base stats at Intensity 1.
  • Devour has been removed from the League of Evil's units.
    • Damage has been rescaled to account for such a loss in ability.
  • All units of the League of Evil decay.
    • Time until death varies based on the unit, with bigger units decaying slower.
    • The Universal Nemesis does not decay.
  • In addition to a prior mechanic where the League of Evil gained stats upon killing enemies, their own ships' death will contribute in the same manner.
  • There are now ships available for hacking.
    • The Universal Villain and Universal Disaster both possess player versions that can be obtained through hacking a Universal Beacon.
    • However these ships count as League of Evil ships for the purposes of granting stats to the faction, making hacking for them potentially risky.
  • Slightly changed formula for gaining stats.
  • The Universal Cataclysm and the Universal Catastrophe grant 3 and 1 hacking points respectively upon being killed by a Human player.
  • The Universal Nemesis now grants 50 hacking points and 5000 science upon being killed by a Human player.
  • Rescaled Necromancer rewards slightly.
  • Changed faction's color.
  • Added a material override to each of the faction's ships.
  • Note : Strength indicated by units does not change dynamically, so they may not be indicative of a unit's real power level.

5.579 Hotfix 3

(Released December 7th, 2023)

General

  • Fix to fleet leaders thinking they aren't fully claimed when crippled.
  • Fix to zenith miner stuck spamming 'eating planet x' if x is destroyed by the time its countdown happens.
  • Fix to null when closing a sidebar popup using escape key.
  • Added debugstages to maybe find an exception related to updating AddOnEffects/BubbleShield Visuals.
  • Protect against null color in 'GalaxyMapDisplayMode_Normal.WriteLeftRightTextPerDisplayModeType'.
  • Protect against null entity type in 'GetCanBuildAnother'.
  • Protected against null in 'CalculateEffectiveGalaxyWideCapForPlayersConstructing'.
  • Fix to encyclopedia using an inappropriate faction for units.
    • Also applies to icons for ships elsewhere that should have shown as a generic/unknown faction owner.
  • Fix enable/disable toggle button for mods not appearing grey when off.
    • And probably a few other things using the same call.
  • 'Settings > Tooltip Customizations' cleaned up.
    • You will only see the settings that are applicable to the 'Tooltip Writer' you have selected.
  • Fix to vanilla and exp. tooltip width so the first lines aren't wrapped when showing the text labels rather than icons.
    • Note: 'formatted' tooltips do not ever show text labels for the top lines, which allows it to be MUCH narrower.
  • Improve newlines in resource bar's aip tooltip.

Formatted Tooltips

  • Fix to top lines showing text for 'Strength:'.
    • Text labels are never used in formatted tooltips.
  • 'Crippled x times' no longer duplicated.
  • SecondsTillTransformation line spacing fixed.
  • Now showing corrosion, infest, devour (they may not fit with weapon-activity-details on, yet).

Coders

  • Added 'ArcenCharacterBufferBase.Add( ArcenCharacterBufferBase other )'
  • Game settings can now be marked in xml to only be shown while other settings are in a range of values.
    • eg. '<show_if id="0" setting="UseTooltipWriter" int_val="1" />' also supported is 'str_val' and a comma delimited range of values '="1,2,3"'.

5.578 Hotfix 2

(Released December 6th, 2023)

General

  • Fix to exception in 'Hack Rift' choices popup.
  • Fix to 1-time hacks not destroying the target after.
  • Fix to blank/malformed items in Intel sidebar.
  • Fix to the 'Swap Member' popup from 'Fleet Details' auto-closing as soon as it is opened.
  • Fix to pressing escape to close the 'Swap Member' popup also closing 'Fleet Details' underneath it.
    • Now checking if input is blocked after each call to Window.Handle() and if so stop calling into other windows.
  • Hack items shown in 'Hack Targets at Planet' tooltip improvements.
    • No longer covers so much of the screen, it is a bit more narrow.
    • No longer slides around with the cursor's vertical position, it snaps to the hack item it is for.
    • No longer shown for the hack item currently selected, as that completely covers the popup.
  • 'Adapt or Perish' quickstart resaved with a correction to faction alliances.

Formatted Tooltips

  • Improved entities with: ShipTypeNameToGrantMoreOfInCustomFleet, CitySockets/CitySocketCost.
  • Faction beacons no longer showing "claimable in x sec".

Code

  • Extensions.ToString(Enum) now caches the string name instead of calling ToString() every time.
  • Buffer.Add/AddColor(..., color) can now be passed a null or empty color without issue.

5.577 Hotfix

(Released December 5th, 2023)

  • Fix to accidental sign-flip that caused +AIPR to become +AIP (T.T)
  • formatted tooltip work
    • fix exception in tooltip for a module within the window for changing them
    • further work on weapon bonuses; they are all at least accurate now, though not particularly attractive sometimes
    • bubble-shield line no longer word wraps
    • ship_type_name_to_grant_more_of_in_custom_fleet now has proper line spacing (but otherwise still unchanged).
    • self_attritions_X_percent_per_second_if_parent_ship_not_on_planet improved

5.576 Tooltip QoL

(Released December 4th, 2023)

This update has a big list of crucial fixes that needed to go out. But before that big list spams other news out of sight...

This update includes the 'Formatted' Tooltips setting available for use! You can find it in your personal settings.

First enable 'show advanced settings' here:

Formatted 0.png

Then here it is:

Formatted x.png

This is pretty close to a rewrite of the entity (read: ship) tooltips and is not entirely finished yet. You will probably find something it does not do well, yet. But here are some examples:

Formatted 1.png

That was brief which uses ship icons without names, but you can easily remind yourself what those are by holding either of the normal modifier keys to get medium detail:

Formatted 2.png

Here's a few more...

Formatted 3.png

Formatted 4.png

Formatted 5.png

Give it a try while I finish the last 20% of it for next update.

General

  • Fix to crippled ships not being considered disabled.
    • Being crippled was accidentally not handled by Squad.ComputeDisabledReason
  • Fix to non-player entities unexpectedly becoming player owned.
  • Fix to save corruption that could occur related to lists being an unexpected length.
    • List<T> refactor to ideally be more thread-safe.
    • Specifically, changes to its inner array resizing and capacity checks, its foreach iteration, and the RemoveAt method.
  • Fix to 'cleared' flag on quickstarts being broken in last version.
    • If yours are showing as all cleared, you can restore an older one from "PlayerData\Profiles\Backup".
  • Fix to ZA Portal hack and ZA Castra hack.
    • Should now become the 'hacked' portal/castra afterwards and not cause an exception.
  • Fix to chat-box holding focus after it is closed.
    • Also it no longer tries to close and then reopen the sidebar, you can see it just fine over the sidebar.
  • Fix exception when xml reloading related to AddOnOrParticleEffect table.
  • Fix to exception in target planning related to accessing gamecommand properties after its been queued.
  • Fix to leaked list in tooltip for tech vault with no tech choices.
  • Fix max-dps calculation for coil-beams.
  • Now calculating a correct max dps for chain-beams.
  • Regular beams now correctly consider if secondary damage is scaled.
  • Improved the behavior of several notifications when clicked to focus.
    • They now use the shared helper method for centering view on planet/entity which actually focuses on the entity itself, if clicked a second time or already viewing the planet.
    • Applies to: spire debris, astro trains, chromatic horror, devourer, dyson antagonizer, eye alert, enraged macrophage, raid engine.
  • AI Reserves Improvements
    • 'pop over cap' warnings are thing of the past!
    • Ships are now spawned in stacks using the same logic for doing so as elsewhere, which is going to perform a ton better.
    • The number of ships to spawn will now be reduced if the full amount would go over the population cap.
    • You will no longer see multiple Dire Singularity Guardian spawn at the same time from the same wormhole.
    • When being absorbed back, instead of dealing attrition damage to all ships (which does not kill them in a consistent time if they are stacked) it has an actual countdown timer.
  • Beam rendering quality improved!
    • Beam width no longer inconsistent, distance measured to the camera is now correct.
    • Beams will no longer get so narrow that it breaks the effect itself.
    • Beams now have an enforced a minimum width in screen-space, which is reached at ~80% of max zoom.
  • Viewing details/contents no longer changes the open sidebar panel (it was forcing Fleets panel).
  • New encyclopedia feature! "Search by: Everything"
    • This looks for your search text anywhere at all in the entire ships tooltip, at full detail.
    • You can actually use this instead of the cumbersome 'filters' dropdown for a lot of things!
  • Encyclopedia shows 'mark level' in its own column now, so its in a consistent horizontal position.
  • Tooltip for the sidebar buttons formatted a bit.
  • At-local-planet tooltips that are for ships, no longer vary in width.
  • The 3x tooltip scale settings now have higher precision.
  • The order of members in the fleet management popup no longer changes when toggling a line between constructing/paused.
  • New codehook OnWorldClear and PostAllTableInitialize.
  • IDrawBag and notably also EntityTypeDrawingBag no longer leak lists when used. Also, the inner type of an 'Item' is now a struct rather than a class.
  • Planet resource production booster logic reworked so that they only apply to planets that are owned by a friendly faction, and not neutral.
  • Disabled the RNG delay time added into a weapons reload when it does not have targets.
    • This was appearing in a very annoying way if your have tooltips have 'weapon activity details' on.
  • Tracing (debug) window will now use more than one column if it otherwise does not fit on-screen.
  • Fix to ships timing out ($Dies) rendering with the under-construction effect.
  • Fix to leaked list 'FactionUtilityMethods-SendUnitToRandomMetalGenerator-WorkingMetalGeneratorListInner'.
  • Ships that are still under construction (and paused, for example) no longer passively regen shields.
  • Added some validation of chain-beam entity system values read from xml and messaging on some invalid combinations.
  • Fix to typo 'lighting' -> 'lightning' in an embarrassing number of descriptions.
  • Fix to the dlc3 data extension 'AddTooltipText' method causing an exception when sidekicks mod is not enabled.
  • Fix to human command stations and home-command being considered reinforcement locations.
    • Probably no effect on gameplay but it could be visible in tooltips.
  • 'Experimental Stacking Algorithm' in galaxy performance settings now actually functional if the setting is enabled.
    • You will get some exceptions probably because it is so aggressive and isn't really reccomended unless you are in a real performance bind.
  • All direct calls to Window_InGameHoverEntityInfo are now EntityText and the redirect happens inside that.
  • ArcenCharacterBuffer (the one thats not double-buffered) can now be allocated and held onto forever in the same way a List<T> can
    • This does not affect anything about the temporary, pooled way of using them.
  • Several things which were not occurring for paralyzed ships moved up so they are.
    • update the status of externally granted invulnerability
    • self-attrition or self-destruct over time or when parent missing
    • watches planets at range (ie, a logistical station)
    • transformation (and also expiring) based on either time or enemy presence
    • handling of 'ClaimablePlanetaryShipInWrongFleet'
  • stringbuilder fix for bools, where being written as the ascii (int) value not actual characters '0' and '1'
  • stringbuilder fix to the NextIndexOf and PrevIndexOf taking a string
  • stringbuilder fix to WorkingTagList not initialized on non-main thread

Mods

Radiant Maps

  • Spiral renamed to Simple Spiral
  • Spiral2 renamed to Spiral Galaxy

Points of Interest

  • All 'last stand' now have the same override colors to look grey/near-death.

5.575

[skipped]

5.574 Hotfix 2

(Released November 12th, 2023)

  • Turns out the prior version had some issues loading for people without existing settings file. Apologies about that, it's solved now.
  • Added in some more GameCommand compaction, based on the results that NR SirLimbo was finding and posting after a long play session that started experiencing slowdown.
    • This compaction is done on a background thread unrelated to the sim, after all other threads are done with the object, so this actually should work out really nice. If it were not for the time-based-pooling, then this would be incredibly dangerous as well as overkill.
    • As it was, from the logs that he shared, these were responsible for 1 GB of memory usage all on their own.

5.573 Hotfix

(Released November 11th, 2023)

  • Fix to some index out of range exceptions because of the new release memory function.
  • Fix to some asset bundles which were not updated as expected.

5.572 Polish And Reduced Memory Pressure

(Released November 11th, 2023)

  • Added in a new ReleaseMemory() call on Dictionary and List, for purposes of removing the internal array on certain collections that otherwise could grow too large on certain objects, most notably ships/squads.
    • This is dangerous to use on any object where it might still be actively iterated by some background threads. So this is happening only on "mid cleanup" when it has been between 40-59 seconds since the now-dead unit was last known to be alive.
      • For example, using this needlessly on deep logic areas of the game for collections that are not going through a time-based pool would likely lead to issues, but intermittent ones.
    • In some respects this is a form of array compaction, but it's just a really aggressive form that throws out the entire array. Again this has to be used with care because it can cause gc pressure, but in the cases where it is used right now, it's small enough that it shouldn't ever be a problem, especially with the incremental gc.
      • For example, however, trying to use this same approach on GameCommands would likely be a disaster in terms of introducing stutter and other issues.
    • Overall, this is a tool that should not be used very much, or used with great care and sparingly. Most collections are set up in a way that they are non-gc'd for a reason, and that reason is primarily thread safety as well as making sure that things are able to be tracked long-term. We were getting memory islands that we could not see, for example.
      • The way that this is being used avoids the issue of memory islands, specifically because there are no possibilities of rings of ultimately-circular references within these internal-arrays that are being released, because everything that has a reference to something approximating the internal array actually has a reference to the outer collection, which remains un-gc'd.
      • So the fact that this now exists doesn't mean it should be frequently used, or used beyond where it is being used. But for where it is being used, it should prevent late-game memory-leak-like behavior, if this was the source of that. Worst case, it will at least make that smoother, and if there was a place that is an actual memory leak separate from this, it will be more apparent.
  • Standardized the for-text icons (resources mostly).
    • Previously they had different scales, yoffsets, apparent blurriness, amounts of horizontal blank space in image.
  • Error window improvements.
    • The game is paused while it is open.
    • It is now possible to close the error window with escape.
    • Other windows do not handle input while it is open.
  • New tooltips are all moved into a 'experimental tooltips > 'formatted' option.
    • this is not ready for use, yet
  • Standardized the 'added by/from' mod/dlc text.
    • The abbrev shown after choices in a drop-down now look more appropriately spaced/sized.
  • Hovering over faction within the "Add Faction" popup list now show descriptions.
  • Added a 'short name' for several lengthy hacking-type names.
  • Added a real description tooltip for galaxy setting: AI Behavior > AdvancedDangers > PowerLevelMultiplier (was 'TODO')
  • New 'extended' galaxy setting 'AIPMultiplier' which is a percentage value 100-300 in normal games, and 0-300 in sandbox, that scales aip as it is applied.
  • Fixes to dying ships re-spawning.
    • See coders section for details.
  • "Destroyable Target Density" tooltips reworked.
    • These were previously mentioning being scaled down in MP and are in fact not.
    • Also I made some effort to recommend being very careful with changing any of these, since it greatly affects overall game balance.
  • Bindable input action 'reboot aiw2' now first prompts the user to continue or not, and then first returns to the main menu, before rebooting.
  • Fix to input action binding conflicts.
    • conflicts are now correctly detected based on current bindings rather than only the defaults.
  • New setting "Escape Closes Sidebar".
    • Normally escape opens the paused/escape menu, even if a sidebar is shown, and the sidebar will still be open when leaving the pause/escape menu. But if you like not having the sidebar open, its much easier to close by enabling this setting.
  • Some new safety precautions when saving and loading settings, so they are less likely to be lost.
    • Saving now happens to a .tmp file and is only copied over other previous files after that succeeds.
    • Loading now waits until everything has succeeded before assigning to GameSettings.Current
  • Fix to Shattered Mirror still having the short-name of Dark Mirror.
  • Making sure all battlestations are marked with capturable_can_seed_at_all="false" just to be perfectly clear.
  • Removed attributes fleet_design_templates_i_always_grant and fleet_design_logic_i_grant_one_from from battlestations.
    • These were causing them to show in encyclopedia as a fleet with stuff they actually don't come with.
  • Fix to ui control sizing for multi-line text, it's also done more efficiently now.
    • Odd amounts of top/bottom/left/right margins should be improved.
  • Encyclopedia no longer showing "x1" by everything. If its not an actual capturable/hackable with a line size nothing is shown.
  • Protect against divide by zero in DoMultiHittingAoEAttack.
  • Making DeployAIReinforcementContents a little safer in response to an exception report.
  • Fix to beam rendered with a y-offset.
    • They are now spread out in a horizontal circle, rather than a vertical one.
  • Clarified bonus damage tooltip for shield/hull/%/self/target.
    • It was incorrectly flipping target/self in the description of the stat comparison.
  • Can now toggle/activate custom systems by clicking the notification.
  • Experimental Tooltips
    • Weapon dps range now considers aoe and max targets per salvo.
    • Only showing multi-beam line in full detail, same as multi-shot.
    • Regular beam tooltip greatly simplified (and made accurate).
  • Reduced excessively long HRF faction name.
    • "Human Resistance Fighters", may 'ye rest in peace.
    • Long live the "Human Resistance"!

Mods

Outguard Party

  • SuperCombatFactory no longer able to be seeded
    • Thanks for the report @RadiantPhoenix

Radiant Maps

Spiral2:

  • Added a setting to reduce halo linkages
  • Tweaked wibble to be less snarling
  • Improved large cloud generation
  • Added more hairs on the rim

Radiant Fleets

  • Some of the Arks from this mod should now seed in the galaxy
  • Tweaks to this mod's Arks

Radiant Colors

  • Two new shades of orange

Reclaimers/Bonus Assets

  • now has per-platform bundles, fixing errors on linux/mac
  • fixed issue with unstable explosion when one is loaded from a save game
    • it now actually serializes its data

Coders

  • Helper_SendThreatOnRaid now always return its temp lists.
  • Fleet.IsLooseFleetForFaction is now properly set false when returned to pool.
  • Some validity checking for Fleet.IsLooseFleetForFaction when deserialized.
    • If the fleet type is anything other than NPC/PlayerLoose we clear it to false.
  • DumpFleetContentsIntoFactionLoose now does a few new things:
    • If the faction's loose fleet is null, safely log that and destroy the dying fleet instead
    • If the fleet dying thinks it IS the faction's loose fleet, safely log that and destroy the dying fleet instead.
    • The centerpiece entity itself will -never- be respawned into loose fleet.
    • Entities in the fleet that are already dead, do -not- get spawned again, in the loose fleet.
    • Entities moved to the loose fleet now maintain their ship count, if it was a stack.
  • If multiple windows are open, the top one now handles input first instead of the bottom.
  • Fix to 'object' being detected as an 'INeverGarbageCollected' so you can have it in dictionaries now.
  • Override material should now work for copy_from.
  • Fixed issue occurring when splitting a stack, if a ship has a chargeamount from a previous life.
  • Fix to ArcenDoubleCharacterBuffer to once again be able to skip tostring calls when its contents are the same.
  • ArcenCharacterBufferBase can now be backed by either a StringBuilder or a new alternative (ZString) which can do no-allocation formatting of numbers
  • entity attribute external_invulnerability_hide_if
    • "None" by default and is always shown in tooltips.
    • If set to "Vulnerable" then will not be shown in tooltip if currently vulnerable.
    • Used this attribute to make human command stations not constantly show as "vulnerable" when not bolstered by a spire buttress.
  • New table TextStyles that is for authoring, in xml, a named set of text-tags to be used when displaying text.
    • This will be used for the unreleased experimental 'formatted' tooltips.
  • Reduced string garbage for names over wormholes.
  • New codehook LoadExternalData: Called at the end of Engine_AIW2.LoadExternalDataLate after all tables have been initialized.
  • New codehook ReloadSelectData: Called at the end of Engine_AIW2.ReloadSelectDataFromXml after other tables have been called.
  • This allows one to create new ArcenDynamicTable or ArcenAbstractExternalData type in external code and have it initialized and support reloading without core needing to be modified or know of it.

5.571 Hotfix

(Released October 20th, 2023)

  • Fix to 'System.ArgumentOutOfRangeException: numShips'.
    • Squad.ShipCount was off by one.
  • Error message shown when an override material fails to load now includes the internal name of the entity.
  • Drones (again) disallowed from stacking.
    • this was intended to be an opt-in performance setting but that is not ready yet

5.570 Petawatt

(Released October 20th, 2023)

General

   Chromatic Sphere's hackable Interplanetary Weapons are all now functional!
   - Thanks to Puffin for this work!
   Dire guardian lairs were incorrectly seeded as 'BigGood' and are now 'BigBad'.
   - in some cases lairs were being spawned right next to the human homeworld
   
   Fix to at least two cases of 'yikes! jumped from fleet foo to bar' 
   - When a drone fleet leader dies, you may see its still living drones jump slightly in position, but this is the lesser evil.
   
   Tooltip for a stack in At-Local-Planet or Selection-Info now has the correct number of ships.
   - mostly this just means the strength is shown for the full number
   
   Ships that deal attrition damage, no longer do so when there is a ceasefire on their planet.
   Fix to missing 'take wormhole' order when queuing move to location orders in some circumstances.
   Show behavior and order line in tooltips on all detail levels.
   Ships that fire on death were not getting the correct number of stacks (but now do).
   Necromancer ships which decay now become a stack of equal size instead of a single ship.
   Already existing wards now spawn with their flagship when the flagship is on a new planet.
   Fix to hang on startup if exception occurs within one of its tasks.
   Fixed a bug where autobuilding mobile station-keepers does not put them on FRD automatically.
   Hover and faction rings should now have the same relative size on all planet sizes.
   Mapgen logging enabled no longer causes an exception assigning player homeworlds.
   
   Regenerators now operate more correctly when more than one is at planet.
   - the one which handles regen is now randomized instead of exhausting a single one
   - one regenerator being below its threshold to operate no longer blocks others from doing so
   
   Calculation of the kite/approach/stop distances is now correctly considering the target's radius and bubbleshields.
   - That is, the target itself directly has a bubbleshield. Just being under one, currently still has no impact on this calculation.
   - For very small ranges (ie, melee weapons) this calculation is now adjusted to use different ratios. 
   
   Ships with systems having a seek_range specified (mostly melee) will now (again) move in to engage targets within that range even when idle (idle as in, not in pursue or attack-move, which it ofc will also seek to targets in).
   - Returning afterwards to the position they were idle at caused issues when i attempted it, so that is still not enabled.
   - The seek range is also now scaled by the same factors as regular range is. The result is somewhat smaller than before, which seems appropriate as it is still quite, quite large.
   
   Stop command now also clears frd targets.
   Attack orders that are from frd are now removed when the target is no longer a valid frd target.
   In some cases targets were being evaluated as if in range when they were not.
   
   Fixed the networked range enhancement (more range per ship of the same type on the planet) which was not working.
   
   Fix to NotImplementedException for NewLineIfNeeded.
   - This occurred when C-Clicking to see affected lines for a tech in the sidebar, if detail is medium or higher.
   - Thanks to Nicolas B for reporting.
   
   Fix to a whole slew of things that occurred on-ship-death not respecting the number of ships in the stack which died.
   - Resource on death (science, hap, aip, essence, metal, everything), metal loss at planet, infest ships to spawn.
  
   Fix to strength counting of TotalThreatProvokingStrength.
   - As a result of this non-player factions such as DZ or Nanos, often seen swarming ai planets, are capable of triggering guard posts to deploy and previously could not.
  
   Exogalactic Strikeforces targeting their own Overlord will now self destruct
   - Thanks to Croque for finding this bug.
   - This fix is a bandaid to allow for games that hit this bug to be played out
  
   The AI will also no longer inappropriately trigger Shark A/B when killing another AIs command station (ie, civil war).
   - This was the cause of the big clumps of 'Exogalactic Strikeforces' ships targeting non-players.
   - Thanks to Croque for the report and Badger for finding this cause.
  
   Ark Empire's starting ship lines show the full ship name instead of the excessively truncated short name.
   - This also applies to Ark Sidekick from Sidekicks mod.
   - This also applies to starting ship lines as chosen in Classic Fusion mod.
  
   fix to focus-camera-on-entity code where i adjust the zoom backward if its very close or inside the entity
   - issue was that i needed the actual camera zoom in world units not 0-1
  
   fix to ambush post
   - was not actually spawning drones, now it does
   - drones spawn in attacker full
   - drones now die after a time-out rather than self-attrition, since they are allowed to stack, and self-attrition doesn't really work right in that case
  
   draw squad orders fixes / improvements
   - now shown (again) for ships selected, not only hovered
   - now shown for hovered in the selection-info
   - now shown for off-planet ships (if selected) if orders terminate or pass through the planet being viewed
   - now shown for npc ships without the debug setting on
   - visualizing seek range now (yellow)

Mods

Classic Fusion

  • Fix "missing method exception"

Radiant Maps

  • Spiral2: Default arm thickness changed from "snake" to "girder". (SirLimbo was right, it looks better this way)

Radiant Fleets

  • NEW MOD!
  • New fleets for Human Empires: Mobile, Battlestation, and Support
  • New ships for Human Empires, Ark Empires, and Ark Sidekicks
  • New Arks
  • Works without DLC, but some components will be disabled without DLC
  • Lots of References to Ancient Shadows

Lost Spire Coilbeam

  • NEW MOD!
  • Lost Spire Frigates will now use Coil Beams like their un-Lost bretheren.

Necromancer is Not Neinzul

  • NEW MOD!
  • With this mod active, Necromancer units will no longer be listed as Neinzul units in the Encyclopedia

Playable Flenser

  • NEW MOD!
  • Adds a playable version of the Flenser for Human Empires, Ark Empires, and Ark Sidekicks.
  • Some Assembly Required: all versions require some Science and a lot of HaP to reach their full strength.
  • Batteries not included: the version for non-Ark Empires has its standard power draw of a Petawatt.
  • No, it's not balanced, it's just meant to have stuff for you to upgrade.

Sidekicks

  • Ark Sidekick now again has its own starting arks and starting lines, separate from Ark Empire.
  • Ravagers can no longer be affected by Necromancy
  • Chrysalises should no longer spawn on planets being actively drilled
    • Thanks to Radiant Phoenix for reporting

Coders

  • New damage modifier comparison type: comparison_type="NotEquals".
  • When trying to load an override material, it first attempts to load the path as an actual Material before trying to load it as a prefab.
    • So when it is not a Material, this is not worthy of an error, and is therefore no longer shown.
  • New attribute for factions must_defeat.
    • If true then this factions defeat_condition always applies, regardless of galaxy settings.
  • Faction custom fields of type CustomDropdownCoreTableSubset have two new optional attributes.
    • options_show_as="DisplayName" is the default value but can also be "ShortDisplayName"
      • This defines whether the option's visible name is the row.GetDisplayName or row.GetShortDisplayName.
    • options_sort_by="VisibleName" is the default value but can also be "InternalName"
      • This defines the order options appear in the dropdown, and is either by their visible name or by their internal name.
    • These only currently apply to fields of type CustomDropdownCoreTableSubset, but logically could apply to CustomDropdownCoreTable or CustomDropdownSurrogateTable if someone requests that in the future.
  • material_override_path="" now works in partial records
  • ships dying do to transform into "$Dying" now actually go through the full expected death sequence instead of instantly despawning
  • entity custom per-sec logic can now implement IGameEntityDamageAdjuster to modify the base damage or base corrosion damage for any system
  • ships with the attribute 'has_custom_move_order_and_no_other_direct_commands_can_be_given_from_player' spawned-on-death no longer receive the spawners orders and behavior, allowing their own starting behavior to be applied
  • new attribute 'dies_after_lifetime_sec' which will start a timer then die automatically
  • you can now use '$Dies' as a squad's TransformsIntoAfterTime to kill it
  • cleaned up the api for setting/clearing the hovered entity
    • it will now properly report said entity when hovered in the selection-info
  • helper entity.RenderPosition returns the interpolated world location in maincameraview space
  • If an object extending ArcenDynamicTableRow now fails to clear itself it will now display an error as well as what type and internal name it is, as well as the potential expansion and mod origin.

5.569 Standards and Practices

(Released October 3rd, 2023)

General

  • Load and Unload orders no longer clear the ships behavior.
  • Fix to station keepers not starting in pursuit mode.
    • The behavior= attribute in a ships xml which is suppose to be its starting behavior was only being actually set for one of the several entity spawn methods.
  • Fix to drones not attritioning when parent leaves planet/dies.
  • Fix to drones not auto-loading when threat no longer present.
    • Code related to loading and unloading of drones has been relocated out of core. It is now in the Fleet/Entity SimLogic type rather than Fleet/Squad.
  • Tooltip fixes.
    • Techs affecting the ship line are now, again, correctly shown for ships that are not really constructed yet (ie, encyclopedia, unclaimed transports, ars hack choice). Also this line is now always begun on a new line, which was previously inconsistent.
    • Decloaked by tachyon! no longer shown incorrectly in tooltip for ships that are not really constructed yet.
  • Fix to range indicators and orders not shown with selections > 10.
  • Restoring show-orders to be done based on its own keybinding and not linked to showing range indicators.
    • I would like an opt-in setting in the future though, like 'show ships orders when showing range indicators'.
  • Fix issue with melee ships not firing at their target.
    • A ship is considered in range to shoot if any part of its radius or bubble shield (whichever is greater) is in range.
    • Previously the literal center-point of the target ship had to be within range (which causes issues if the weapon range is ever not larger than the target radius, which is often the case for melee range weapons).
  • Fix to entity systems being inappropriately used for kiting that have firing timing of 'never' or 'when parent entity hit' or tagged with 'only fires on death'.
  • Fix to waffling between targets, particularly when few in number, and some of those are not combatants (unarmed guard posts).
    • The problem was that a target that is extremely close and therefore much higher priority as a target, could become the first/best target, yet still not be assigned as the FRD target despite being 100x the next best choice's priority.
  • Fix to another case of target waffling.
    • As the targeting priority scale based on distance reached very close to zero, it was becoming 1 instead of 0.
  • Reverting change to Fleet Research Station from a few versions ago which had them avoid offering the same thing in multiple locations (so, duplicates can and will occur now).
    • A way to opt-in to the newer behavior will be added in the future.

Mods

Radiant Colors

  • New Mod!
    • Made by @RadiantPhoenix
  • Declutters the color picker window.
  • Hides many of the tints that were not significantly unique.
  • Arranges the remaining smoothly in a gradient.

Sidekicks

  • If you choose the Neinzul starting stronghold (the default) then you can no longer get a District 2 Bear Vault at game start
    • This actually is awful, since you won't have enough metal to build them
  • Dyson Sidekicks can no longer wind up owning metal generators on a home planet shared with a Human Empire
  • Guardian and Dire Guardian Boosters build more quickly

Reclaimers

  • No more white particles appearing at the origin/center of planets.

5.568 AMU Recovery

(Released September 30th, 2023)

  • Remove some leftover debugging code that was spamming the ArcenDebugLog whenever anyone switched from galaxy to planet view
  • Fix a bug where the Templar would get stuck on hostile planets whose owners were unkillable (Dyson Sphere, Zenith Architrave, etc)
    • Templar will now just avoid attacking such factions

Mods

  • SirLimbo's AMU mod was broken in the prior build, but is again functional.

Sidekicks

  • Reapers sometimes spawn in a bunch at the edge of a planet, instead of fully spread out
  • It should be harder to get Chrysalises on ravaged planets. I'd like it to be impossible, so this is a step in the right direction
  • Dyson Spheres should no longer attract Reaper Larvae as much
  • Make dyson sidekick econ structures build more slowly. Make transports tastier looking targets for enemies
  • Killing a reaper Larva grants the dyson sidekick +1 Cuendillar
  • Dyson Sidekick: give them a bit more metal storage and income
  • Fix some bugs with the printing of dyson sidekick error messages
  • The Dyson Starting Resources option now works.
  • Give the scourge a SmartBuilder concept (currently enabled with the civil war only). I'd like to have the scourge (optionally) be even scarier.
    • If I can make this work happily I'll backport it to the base game (as an option)

Radiant Maps

NEW:

  • Crossroads map style: like X, but better!
  • Spiral and Spiral2 map styles: spill some milk on the sky!

CHANGED:

  • Cursed: Added option to forbid diagonal connections. Now all of your wormholes can be ambiguous!

OTHER:

  • Some under-the-hood changes to make it easier to add new features. If something explodes, please tell me on Discord!

5.567 Scourge Civil War

(Released September 23rd, 2023)

General

  • Fix to the arcen linked-list types skipping the first element in foreach loops (or enumeration in general).
    • Potentially a source of strange issues since time immemorial.
    • Was actually identified for a minor thing, the missing dps value for the very first ship in 'at local planet' (with dpshud mod on).
  • You can now toggle framework mods on/off manually, too.
    • This is just safer. The game actually doesn't turn them off for you like i thought.
  • Team colors marked as hidden are now actually hidden.
    • This makes the color picker window quite a bit cleaner.
    • The tooltip over a color, in the picker window, is now the display name if it exists, and then the hexcode.

Sidekicks Mod

  • I want to force players to ravage more planets, since that's an interesting and underutilized mechanic.
  • Asteroids and Planetoids now generate less Cuendillar.
    • This is to force players to ravage planets for Cuendillar
  • To compensate, Dyson Spheres are now unlocked from the beginning of the game, and can only be built on ravaged planets. Now you have a reason to want Ravaged planets!
    • Spheres now produce Guardians and much more powerful Flagships that serve as a Warden Fleet for you (they aren't under your control, they just fly around being helpful)
  • Since we are leaning into Ravaging things, when the Reapers try to Ravage a planet, it goes more quickly
  • Fix a bug where Dyson Empire games weren't spawning planetoids
    • Bug report and fix by Radiant Phoenix
  • Some minor tweaks to Dyson Sidekick units
    • Thanks to Radiant Phoenix

Scourge Civil War

  • With this faction enabled, each AI gets a scourge faction that spawns on its homeworld.
  • These scourge factions are friendly to the AI and hostile to you.
  • They are in "Civil War" mode; each scourge faction is hostile to each other one. They will battle across the galaxy, and maybe smite you too if you aren't careful.
    • There's also an option for the Dark Zenith Svikari to spawn as members of the civil war as well as scourge

5.566 You Saw Nothing

(Released September 10th, 2023)

Fixes/Changes

  • fix to "mod _Vanilla" not found
  • fix to range test inverted for targeting
  • remove logging when writing world base/deep infos
  • non-mobile entity tooltips now show as Behavior: Stationary

Coders

  • HackingTypeTable now reports exceptions loading a hacking type or implementation including the mod its from but continues processing rows.
    • It was aborting all processing on first error causing a cascade of unrelated errors, also wasn't clear at all it was from a mod.

Mods

  • disabled Ship Lines for now, is causing exceptions that can cascade
  • disabled Dark Sphere, shh thats a secret for later
  • added City Ships, oops now its in
  • added Hydral Federation Balance, oops now its in
  • fixed Classic Fusion, sorry Puffin
  • fixed Points of Interest errors

5.565 The League Of Arphar Mods

(Released September 9th, 2023)

Fixes/Changes

  • Fix to again show modular systems in tooltips for unbuilt entities (eg. encyclopedia, hack choices).
  • Fix a typo in the Mass Driver journal entry
    • Thanks to alocritani for reporting
  • Fix to a couple sniper ships closing in for their short range guns that shouldn't have.
  • Target selection is now influenced by how far away (in seconds) it would take to move close enough to be in range.
  • Melee ships not in Attack Move or Pursuit (shown as Defending in-game) will no longer seek targets.
  • New command you can optionally bind in Controls to order selected ships to Stop.
    • Turns off any behavior toggles, cancels any orders, clears preferred targets.

Mods

Outguard Party

  • Improved presentation of settings in Outguard category.
    • For the starting-planet beacon you now choose "None" or "Random" in the dropdown instead of being separate settings.

Dyson Sidekick

  • Give the reapers a bit more oomph
  • Dyson Sidekick flagships get to mark 3 a bit faster
  • Start of work toward making building dyson spheres more desirable:
    • Dyson Spheres can now build templar guardians
    • Buff dyson sphere flagships

Radiant Maps

NEW:

  • Mirror Universe map style: two non-intersecting grids, overlapping. Will you find a way to reach the other side?
  • Elder Sign map style: an asymmetrical tree-like shape, with trapezohedrons hanging off of it like branches.

Tweaks to existing map styles:

  • All:
    • Commented out some unused variables so the compiler would stop bugging me. Hopefully this doesn't cause any bugs
  • BrickWall:
    • Beltway linking has been tweaked to be more aesthetic
    • Broken links should prioritize turning corners into isolated planets (before adding the beltway), to maximize the number of dead-end planets attached to the beltway.
    • Default number of broken links is now 5 instead of 10
    • Automatically determines the dimensions of the grid according to the desired number of planets
    • Added a "wibble" setting to move the planets around a bit at random. This should reduce the probability of cursed random links
  • SquareFractal:
    • Added a "Beltway" setting (default is off)
    • Added a "Heart" setting for those who want even more connectivity (default is off)
    • Added a "wibble" setting to move the planets around a bit at random. This should reduce the probability of cursed random links
  • Sausage
    • Added a "wibble" setting to move the planets around a bit at random. This should reduce the probability of cursed random links
  • Flenser:
    • Removed a bugged function

Hydral Federation Rebalance

  • New Mod!
    • Made by @Arphar
  • Rebalances the Hydral Federation units. Mostly nerfs.
    • Can only be used in addition to the Hydral Federation mod.

City Ships

  • New Mod!
    • Made by @Arphar
  • Introduces the City Ships as a faction.
    • A City Ship will invade at some point in the game. It will then wander and attempt to become more prosperous by establishing settlements and defend them by placing down defenses to protect them.
    • Given enough time and little disturbance, it will grow prosperous and powerful, and be able to contend with the powers of the galaxy.
    • Can be put on any team barring the Dark Alliance, and you can also choose when it will invade.

Universal Nemesis / League Of Evil

  • New Mod!
    • Made by @Arphar
  • Introduces the League Of Evil as a faction.
    • Led by the Universal Nemesis, the League Of Evil has decided to invade your galaxy.
    • The Universal Nemesis is a powerful being with exceptional corrupting abilities, making heavy use of devour and conversion mechanics, and its troops are not lacking.
    • The League Of Evil grows in strength by defeating its foes, granting them extra max Hull and Shield thanks to a new mechanics cleverly implemented by @Dismiss. Once available, they will also utilize the weapon upgrade mechanic.
    • Put an end to the League Of Evil's conquest by destroying the Universal Nemesis, putting the faction at a standstill.
    • Can be put on any team, including the Dark Alliance, and you can also choose when it will invade. Is on the Dark Alliance by default.
    • Has rewards for Necromancer.
  • Note : The League Of Evil is a worthy foe, and should not be taken lightly.

Dire Macrophage

  • Changed invulnerability region of Dire Telium from Galaxy to Planetary. This means you only need to destroy Bastions in a planet with the Dire Telium you wish to destroy instead of the entire galaxy.
  • Adjusted mass of Dire Macrophage units.

Azaran Empire

  • Adjusted mass of Azaran units.

Reclaimers

  • Several new ships available at Research Stations for fleet-ships.
    • They have pretty spectacular new special effects too.
    • New Death Effect type Instability which causes a ships death to deal damage in an area around them, 1-to-1 with the number of points applied to them.

5.564 MMAP No!

(Released August 31st, 2023)

Fixes

  • Fix to Linux build crashes related to mmap errors. This also should improve performance for non-linux users, when seeing lots of text at once.
    • Big thanks to Zoey for reporting this, and also being instrumental in diagnosing the specific cause.
  • 250 mb or so less permanent memory allocated for everyone, as a side effect of looking into the mmap issue. It's more like 400 MB in larger games.
  • Fixed FRD target waffling.
  • Consolidated FRD targeting related settings.
    • MethodicalFRD is gone. It was the source of many odd targeting choices.
    • ConcentratedFRD is gone/replaced with 'FRD Considers Overkill'.
      • Still unclear if it does anything useful and is off by default.

Changes

  • Some things that can die to remains, will now skip doing so.
    • If its not a planet the player controls, nor is attempting to control.
    • ie. an under construction station is there counts
  • FRD Target selection no longer heavily weights choices that have it in their range.

Mods

Reclaimers

  • Rework of photonic frigate, its torpedos are now drones.
  • Rework of anti drone sniper to Counter-Drone Frigate. Should really decimate drones now.

Coders

  • New mechanic for weapon systems: Charges
  • Can now specify a priority for kiting on a weapon system. This depreciates several less flexible attributes.
  • Any system can now be explicitly turned on or off in code with a string reason to display.

5.563 Tweaks

(Released August 26th, 2023)

Fixes

  • Restored the AI-Type dropdown in lobby to have the nice full name with coloration it had before.

Improvements

  • The "Hostile To All" allegiance now colorized (was the only one not).
  • The "Minor Faction Team [color]" allegiances now show as "[Color] Team" (and in that color).

Mods

Sidekicks

  • Reaper Difficulty is now a more meaningful setting
    • Previously there wasn't a lot of differentiation
  • Reaper Gateways are much less likely to spawn on Dyson Sphere planets, since that has visual problems

Reclaimers

  • Genesis Pod ward rework.
    • They will hang around the Pod until there are enemies within range then fly out to fight, and return afterwards!
    • The Pod now fires less of the infinite range drone gun nanos, but does still have them.

Lore

New Mod! .. really really small

This mod currently does very little. 
1. Zombie faction names and descriptions changed.

And that is it.
But here is the general idea behind it and where it could be added onto:

Changes in-game text to be:
1. More "in-character" rather than "out-of-character".
2. More consistent with itself.
3. More clearly worded.

I'm more interested in directly in-gameplay text, like faction names, descriptions, anything in a tooltip, etc.
The Tutorial, Tips, and Journal entries could definitely be improved with a similar approach but I do not plan to tackle that (also, check out the Juicy Journals mod).

This mod is free to modify by any modder who wishes to.
The next time you see some in-game text that bothers I highly encourage you to just add it to this mod. Or with even less effort, submit a note in #mod-general-chat, #mod-requests, and/or @Dimiss42.

Coders

  • New ship attribute 'orbits_parent_unless_parent_system_has_target' which is the string id of a weapon system it checks for on its parent.
    • The weapon system on its parent defines the range at which the orbiters can break off to attack.
    • They will be automatically given attack orders and have them cleared to return to orbit its parent.
  • TestChamber no longer spams log with everything it spawned.
  • Entities marked with 'has_custom_move_order_and_no_other_direct_commands_can_be_given_from_player' were surprisingly actually taking attack-target orders and now will not.

5.562 Woah There Buddy

(Released August 21st, 2023)

Fixes

  • Saves from last version, and earlier, should load again.
    • Thanks to Alocritani for reporting it with a save file too!
  • The AI briefly had become a Sentinal but got bored and is back to a Sentinel.
  • Lobby names made a bit brighter.

Mods

Outguard Party

  • New Outguard the Chromatic Husk!
    • A Chromatic Horror no more, but its weapons still work.
    • Only 'shoots' enemies but maybe don't stand in front of it.
  • Super Bulwark now has kinetic buffers to help out.

Points of Interest

  • New phenomena the Dwarf Planet Cluster may make one planet in your galaxy microscopic, but also have 12 asteroids.
  • New phenomena the Mega Planet may make one planet in your galaxy gigantic and have only 2 asteroids.

5.561 Have At Thee

(Released August 21st, 2023)

Fixes

  • Fix to ai-cost counting of entities when computing the reinforcement cap at a planet.
    • This resolves a long-standing bug causing particular ai planets to build up huge amounts of turrets.
    • Thanks to Arphar for finding this!
  • The error popup for "_PSec.XXXX was already running we cant start another" is now gone.
    • This should have just been logged as a warning and not interrupted the player.
  • Fix to factions added to a lobby sometimes not having their expected default colors.
    • Factions can now coexist with the same center color, if they aren't the same faction.
  • Performance improvement: In-game escape menu About section no longer updated when its not visible.
    • The irony of updating performance stats costing performance...

Improvements

  • The appearance of factions within the lobby has been substantially improved.
    • Every faction, including different player types, have an icon showing their team color.
    • The status line beneath the name is now consistently formatted.
    • The controlling profile username shown off to the side.
  • Gray/Chromatic Sphere are now separate factions, no more dropdown.
    • This allows them to each appear by name in the list adding factions.
    • Adding a Gray Sphere will -actually- have a gray faction color.
    • Adding a Chromatic Sphere will -actually- have a bright (fuchsia) faction color.
    • Both have very nice and identifiable icons, like the zenith sphere already did.
    • All the Dyson Sphere factions now appear together in the list.
  • Splintering Spire now has a more thematic and distinct icon.
  • Fallen Spire now has a more thematic and distinct icon.
  • The appearance of factions listed in view/edit factions now matches that of the pregame lobby as described above.
  • Some tweaks to the Phantasmal Decoy produced by Phantasmal Host Frigate when it takes damage.
    • It is now marked as a DroneGeneral type and will therefore not be zombified.
    • Adjusted its visuals a bit to not confused for a real frigate.
    • No longer lingers on top of the Host.

Mods

Simple Options

  • New Mod! and first by @Strategic Sage!

Eliminates most Galaxy options and some Faction options from the game to simplify and ease the process of creating your own campaigns. The most essential & commonly-used options remain. There are a few changes to defaults:

  • Beacons default to being disabled, but can be turned on
  • Expert Mode is always on for Spire games
  • Venators are always on
  • Fuel Overuse is on if Fuel is active
  • ZA Civil War is always on
  • As always, constructive criticism is encouraged on the discord. Any flaming can be safely disposed of in your nearest circular file receptacle.

Radiant Maps

  • New Mod! New Modder!
  • Try out new map types by @RadiantPhoenix
      • Globe: the topology is like a sphere
      • Square Fractal: a grid connected in a fractal pattern
      • Flenser: a pentagon that puts the AI in the middle if you are outside it. Mostly theoretical
      • Brick Wall: can be a brick wall or a hexagon honeycomb.
      • Cursed: the worst. The absolute worst. Play at your own risk.
      • Sausage: the wurst. The absolute wurst. Have fun. :)
      • Hello World: the first galaxy God ever made

Points of Interest

  • New ai type: Imperial
    • Watch your clock. The Imperial AI is always building more fortifications and hunters to patrol the empire.
    • Plays like Turtle but with the additional time pressure of roaming builder ship that add new defenses, and shipyards that produce guardians for hunter.
      • Thanks to Arphar for contributing this! Also clever mechanics and unique for any AI type!

Generator

  • Fix to Mirrored map type in some situations putting a planet in the centroid way too close to another.
    • In fact, it added them at (0,0) in a failure case, but will now just skip adding the problem planet.
    • Thanks to RadiantPhoenix for reporting!
  • Fix/Improvement to ZA homeworld selection when player homeworld is on the galactic edge or a large number of planets.
    • Will now more correctly avoid picking so close to ai homeworlds.
    • Thanks to ussdefiant60 for the report!
  • Scatter map type now initially links planets as a minimum spanning tree.
    • The result is it looks less messy.
  • Showing major data center icons from the start was not intentionally committed and has been removed.
    • Oops. It could be a feature to turn on in settings, if requested though.

Necro Party

  • Fix a typo causing zero Igors to be granted, is now two (per home).
    • Thanks to two reporters on Discord!

Coders

  • ExternalFactionBaseInfo is now unique for all player types. PlayerSpecificCodebase types no longer exist.
  • Debug controls has a "Reboot AIW2" binding which triggers the same process as when you enable/disable mods.
    • This will explode if done from within a game.
  • Added an entity tag 'not_a_reinforcement_location'.
    • Allows a SpecialEntityType.GuardPost to not have GameEntityTypeData.IsReinforcementLocation be true.
  • Added a faction tag 'should_never_be_in_new_games'.
    • This is for removing obsolete factions lingering from a previous game when entering a new lobby.
    • Older saves which use that faction can still be loaded and played.
  • Getting ship-line-grants for minor factions which do not have any such lines was erroring do to an accidental recent change in behavior and has been fixed.
  • The xml definition for achievements now supports minor_faction_name="Fac1,Fac2" style comma separated lists.
    • This allows an achievement to be triggered by any of the listed factions.
  • GameEntityTypeData.IsFleetLeader and IsKingUnit now also imply CannotBeStacked.
  • Argument "readable" added to GameEntity_Squad.ToStringWithLocation.
    • With it you get values in the same range one sees looking at ship ranges and move speed.
  • FleetMembership.ToDebugString showing "FleetName#UniqueTypeDataDifferentiatorForDuplicates"
  • Fleet.GetName() was returning "Unnamed" for npc fleets without centerpieces.
    • Now returns either "Loose" or "[Faction] Loose"
    • This matches existing behavior for player fleets.
  • Galaxy settings now obey the 'sort_order' tag
    • Sage has a use in mind for this.
    • Not all that useful in general unless someone assigns an order to all settings of a category/subcategory.
  • Faction settings marked as 'is_hidden' were still shown, at least in-game, and now are not.
  • Faction settings with dropdown options that were rows, were not obeying rows marked with 'is_hidden' and now do.
  • Test Chamber has been improvement.
    • Now has the default gravwell size instead of being so small.
    • You can specify a specific gravwell size with grav_well_size.
    • You can specify how many squads to split the specified count of ships into with squad_count.
      • By default ships that don't stack, based on their type, will be put into stacks of 1.
      • By default ships that do stack, based on their type, will be put into stacks of 60 (this number is the npc stacking number from performance settings).

5.560 Let The Ambushes Resume (Until Morale Improves?)

(Released August 1st, 2023)

General

  • Orchid's rescue pods bumped back up a little in size and added the 'drone' overlay image.
  • Fix to Ambush Post not spawning drones on death, and potentially other things.
  • Moved the reason a form is not available to the top instead of the bottom of the tooltip.
    • This is when changing the form of a ship via its fleet details window.
    • Options fixed to correctly show ones you cannot afford the essence price for.

Coders

  • HackingImplementation_WithMenu now shows the extra label info (generally this is additional resource costs) for items that are not possible instead of skipping that.
  • GameEntityTypeData.CalculateEffectiveGalaxyWideCapForPlayersConstructing now takes the faction as an argument.
  • Added virtual ExternalFactionBaseInfo.GetAddedToGalaxyCapForType( GameEntityTypeData ) so that a faction can have its own mechanics for increasing a galaxy-wide cap.
  • Added cheat cmd:allnecroflagships which gives you all blueprints.

Mods

Sidekicks

  • Reapers get some buffs to make their gateways more likely to stick around

Necro Party

New Mod for Necromancers!

  • This mod makes gameplay and balance changes for Necromancer players. Our goal:
    • More variety in winning strategies.
    • Give less used mechanics and ships a purpose.
    • Make each game/galaxy with Necromancer feel more varied.
  • See full change list in-game.
    • These changes are quite dramatic. Really, read the mod description =D

Reclaimers

  • The message shown when research finishes now takes you to the research ship instead of the home station, if clicked.
  • Wormholes formed between deep space outposts are now actually located where the station is.
  • Fixed a lot of reclaimers entities to not give the player vision when 'share npc ally vision' setting is on.
  • Fixed time elapsed between LRP losing time when its been over 20 seconds.

Points of Interest

  • Fix to several phenomena inappropriately showing a strength value and other ship-like stats.
  • Shattered World phenomena fix to not obscure other icons with its model.
    • It also looks cooler with the new rotation.

Ai Lieutenants

  • Disabled from mod list until more work can be done.

Rebalancing Party

  • Disabled from mod list until more work can be done.

5.559 Deringing

(Released July 27th, 2023)

Bugfixes

  • It's very hard to test, since this is something that only happens intermittently in the case of unit testing, but the "stuck extra rings hanging around" should be a thing of the past.
    • The way it works is, the rings and similar now remember when they were last asked to be drawn, and if they are not asked to be drawn for more than 1 second, then they disable themselves.
    • Previously, these were being orphaned and not being still drawn even though nothing was asking them to. There is code running on the rings themselves which lets them self-check and thus bypasses the orphan problem. This of course leads to two other issues:
      • Issue one with the self-checking is performance. This has been implemented in a very slim way, using normal unity Monobehaviour update calls, so that should be solved. Other approaches would have involved things like iterating the list frequently or something, in a way that would have been detrimental. The other reason that this isn't too bad on performance is that we have a pretty limited number of rings ever used, since they are pooled and reused as needed.
      • The second issue is that just because something is properly cleaned up, that doesn't mean it won't be causing other problems later. Specifically, these rings are distributed from a pool of rings, and if one is orphaned, then technically some ship visualizer that previously was using it still has a reference to it. This would mean that when that comes back into play, it would resume trying to use said ring, and then we'd start seeing flickering rings or rings jumping around strangely, because two ship visualizers are writing to it at once.
        • To bypass this second problem, I implemented a version of something that I developed for Heart of the Machine, where essentially the rings all now have "owners," and before using an existing ring from a collection or variable, the ships or similar say "if I'm not still your owner, then I will ignore you and get a fresh ring from the pool, because someone else is using you now."
    • What has been successfully tested so far is that the rings still look and work fine when the game is freshly open, performance does not seem to be affected adversely, and the "check for orphans and expire them" logic is working.
    • What has NOT been tested is what happens when an orphan is actually encountered and cleared, and the bits after that. I simply can't ever make it orphan a ring, so... I have no way to test that, which is why this bug has persisted for so long in the first place (not being able to cause the bug, but knowing that other people see it regularly, is a special kind of frustrating).
      • So there's a vague possibility that the sky opens and demons spill out when this actually encounters an orphan, but the code is very simple and has been proofread carefully, so the odds seem low.
    • Thanks to Galian Gadris for the reminder that this was still going on.
  • Fix a bug since beacons first were committed. They were being treated as SmallGood when there was a FactionBeacon seeding-type.
    • Actually difference in behavior, if apparent at all, is that planets with beacons wont tend to not have any 'good' stuff seeded there with them.
  • Galaxy map strength text for 'hostile threat' which was the second/bottom line to the right, will now match the factions center color instead of confusing you by using the trim unlike other text labels.
  • Fix to 'Share Allies Vision' galaxy setting giving you vision of all planets with an Outguard Beacon.
  • Fix to ships granting lines not getting actual lines picked successfully, with certain combinations of the grant related tags.
    • This also removed a whole ton of duplicate code.

Improvements

  • The sidebar button/tab for outguard now has subtext with the number of outguard currently ready to be deployed.

Coders

  • Added DrawBag.AllowZeroWeightItems so that added items with zero weight will still be added to the bag.
  • The tags 'force_gravity_well_size_of_planet_to_be_at_least' and 'force_gravity_well_size_of_planet_to_be_at_most' which repositions entities on planet when shrinking the grav well size, now also does so if it increases it.
  • Added support for parsing xml attributes as an html hex format color, ie. #FF0000 would be red.
  • Added GameEntityTypeData tag 'does_not_give_allies_vision' which is used if the galaxy setting to share allied vision is on to exclude individual ship types.
  • Galaxy settings that are CustomDropdownCoreTable can now be modified with partial records. This was generating exceptions if attempted.

Mods

Outguard Party

  • Fix to the remote hacking drone lingering forever as a crippled ship after it attritions to death.

More Frigates

  • Fixing xml error on startup about invalid range on a beam weapon.

Azaran Empire

  • Added DLC requirements.

Dire Macrophage

  • Added DLC requirements

5.558 New Mods And Authors

(Released July 21st, 2023)

Game

  • Decrease size of the Orchid Ark's rescue spore icons
    • Thanks to Mac for reporting
  • Add some defensive code for an exception hit in the resource bar UI
    • Thanks to R4gingFire for reporting
  • Fix to null reference exception rarely occurring in decollision planning.
  • Nanocaust invasion planet is now deterministic.
    • Which is to say it will pick the same planet if you reload and replay the same save (but it doesn't only reinvade the same place, obviously).

Coders

  • Get/Release a temporary RandomGenerator easily with RandomGenerator.GetTemporary and RandomGenerator.ReleaseTemporary.
  • Easily get a random element in a list via List.GetRandom(RandomGenerator).
  • Home-Arks can now be tagged with custom_neverRandom="true" to prevent them from being chosen when Random is selected.
  • Ai Types can now be tagged with custom_neverRandom="true" to prevent them from being chosen when Random or Adaptive is selected.
  • FleetDesignTemplates for your starting fleet, mobile factory, and battlestations can now be tagged with weight="0" to be skipped past when Random is selected.
  • Necromancer now checks if a guard post has ImmuneToNecromancy before converted it.
  • The debug feature for showing the destination of threat (occurs when debug tooltips setting is on) within the popup window for visible threat is now a ton easier to comprehend.

Mods

Azaran Empire

  • New Mod!
    • Thanks to the author @Arphar
  • Introduces the Azaran Empire as a new faction.
  • The galaxy is being invaded by the Azaran Empire. They are a highly centralized empire bringing their own planet into the galaxy from which they will produce ships to take over planets and build structures to bolster their production.
  • Face off against them in order to gain rewards and hack their facilities to gain new ships to use either against them or the AI.
  • Or fail and watch them take over the galaxy.
  • Includes rewards for Necromancer, alongside some rewards for Humans to keep on fighting.

Sapper Alterations

  • New Mod!
    • Thanks to the author @obscuris
  • This mod alters how the Neinzul Sappers faction behaves and how their economy works, along with adding new units and mechanics.
  • All changes can be read in the text file provided with the mod folder.

Dire Macrophage

  • Now has rewards for Necromancer.

Sidekicks

  • Some tweaks to the dyson sidekick's flagships for visual size and balance
  • Reapers will now find it even harder to blow up command stations when they don't have any gateways on the map
  • The Jabberwock AI will no longer automatically get ships from the Sidekicks mod if the Sidekicks mod is enabled. Instead there is a new AI type in the Sidekicks mod, Jub Jub Bird (Beware the Jub Jub Bird!) that is the Jabberwock + Sidekicks ships
    • Thanks to Dismiss for requesting

ExoWar Overhaul

  • The achievements for killing a mothership and flenser now trigger correctly upon killing the variations in this mod.

Reclaimers

  • Disabled the chat log message when a scrap box is produced and when drones are reinforced, since these can become spam with many planets.
  • Constructor ships now can build a Near-Space Outpost on the planet they are produced, instead of always first leaving it immediately.
  • Fixed bug causing the Reclaimers Home Station to always end up at the center of the planet.
    • It is now always near the player's station/necropolis as intended.
  • Fixed issue causing a startup warning about the autobuild setting for ReclamationFrigate.
  • Fixed issue with BaseReclaimersInfastructure appearing in the encyclopedia.
  • Disabled most of the reward infrastructure, they were not interesting. It now only has the wormhole suppressor and the warp gate.
  • Chromatic Ark is now never chosen when Random starting ark is selected.
  • Dismissal Fleet, Dismissal Defenses, Reclamation Fleet and Reclamation Defenses will no longer be chosen when Random is selected.
    • So no need to disable the whole mod just to avoid getting weird randoms.
  • Scrap box will no longer be destroyed by enemies.
  • Near-Space Outposts now gain cloaking at mk3.
  • The faction setting 'Debug Mode' is now more clearly separated from other settings.
  • Necromancers no longer end up converting dying Near-Space Outposts like they were a regular guard post.

Points of Interest

  • Marked all new ai types added by poi to never be picked for random or adaptive.
    • One less reason to disable the mod, when you just don't want the AI types appearing randomly.
  • Vindictive Ai type is now in a much better and playable state.
    • Halved the amount donated to hunter.
    • Anger accrued is now properly saved/loaded, in all cases.
    • Many structures which were causing anger no longer do.

Prior Release Notes

AI War 2: Post Completion