AI War 2:Post Completion Part II

From Arcen Wiki
Jump to navigation Jump to search

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.578

(Still in progress)

General

  • Fix to exception in 'Hack Rift' choices popup.
  • 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.

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(string, color) and AddColor 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