Home Products Changelog

Release Notes for Endless Sky

Version 0.11.3

Version 0.11.3:
 * Breaking change:
   * All plugins with tractor beam outfits should divide their "tractor beam" attribute by 5 in order to have the same pull strength as before this update.
 * Big changes:
   * Added a new chapter of the Successors campaign, including the introduction of six new ships, a new outfit, and 57 new missions. (@Daeridanii1)
 * Bug fixes:
   * Content bugs:
     * Typo fixes. (@a4358, @flyingspacesquirrel, @mOctave, @nickshanks, @Someone-named-sky, @Wedge009, @zaveshaa, @ziproot)
     * Updated "Hai Legacy 2" to have the same offer conditions as "Hai Legacy 1", as the two missions are intended to offer alongside one another. (@apttie)
     * Include the deadline date in the description of "Deep: TMBR 0". (@ThrawnCA)
     * "Timothy Radrickson 5e" now offers on landing, as suggested by the on offer conversation. (@nickshanks)
     * Fixed a start-based text substitution in "Remnant: Deep Surveillance". (@warp-core)
     * Prevent the "Remnant Expanded Horizons Astral job" from choosing the current system as the waypoint. (@warp-core)
     * Fixed "FW Southern Recon 1B" from allowing the player to say that they can give an electron beam that isn't in a location that the mission can actually take from. (@warp-core)
     * Fixed an outdated description of the weaponry on the Anomalocaris in the Hai Legacy missions. (@Hurleveur)
   * Engine bugs:
     * Fixed the spaceport panel appearing on top of conversations and dialogs it created. (@warp-core)
     * A plugin that only lists a game version as a dependency will now list that version in the UI, instead of only listing dependencies if a dependency on another plugin is provided. (@TomGoodIdea)
     * Prevent the save file timestamp tooltip from fluctuating on some platforms. (@apttie)
     * Prevent ships from over-transferring energy/fuel when assisting a ship. (@apttie)
     * Administrative costs set on ships are now properly stored in the save file and passed down to variants of that ship. (@Amazinite)
     * Prevent person ships from mind controlling your escorts. (@Amazinite)
     * Fixed a potential crash and unintended save file deletion caused by creating a new pilot with the same name as an old pilot if the old pilot was from before 0.11.1 and hadn't been played in a newer version of the game. (@Amazinite)
     * Outfit attributes are now stored as integers, avoiding various odd behaviors caused by floating point precision errors that could be encountered when selling outfits. (@Amazinite)
     * Ships that are in the process of exploding no longer un-pause their animations. (@Amazinite)
     * The "Select nearest asteroid" command is now able to utilize the scanners on your escorts. (@Amazinite)
     * Updated how missions check whether an outfit is removable to account for which outfits should be available for removal given the current location. (@warp-core)
     * Correct the error message in the outfitter when you're unable to install ammo storage. Previously it would always assume that you couldn't install an outfit in the ammo category because you didn't have ammo space. (@Amazinite)
     * Don't try removing an outfit from your flagship if it doesn't have one in GameAction. (@Amazinite)
     * Fixed various cases where your selected escorts for issuing orders could become desynced from the ship you are currently targeting. (@Amazinite)
     * Ships and planets with scaled sprites will now display at the proper size in the hail panel. (@Amazinite)
     * The travel plan on the map will now accurately report whether you have fuel for a jump when in the middle of a jump. (@knarrff)
     * Fixed an issue where a second definition of a weapon could silently overwrite certain weapon data. (@Amazinite)
     * If a sprite has more 1x frames than 2x frames, the 2x frames will not be dropped instead of reading junk data into the image buffers for the missing frames. A warning will be added to the errors.txt file if this occurs. (@Amazinite)
 * Game content:
   * New content:
     * Rewrote and reintroduced the Delvan Shipworm missions, which were previously removed for containing LLM generated content. (@LazerLit)
     * Added two new short mission chains to Remnant space around investigating the Ka'het, including the introduction of a new outfit to obtain. (@beccabunny)
   * Mission changes:
     * Replaced various outfit checks with attribute checks in mission offer conditions. This allows certain plugin outfits to trigger vanilla missions that were previously looking for vanilla outfits. (@apttie)
     * Removed the immediate launch from the on offer conversation in "Remnant Keystone 6". (@ThrawnCA)
     * Tweak the wording of a choice in "War Reactions: Syndicate Orphan" depending on the previous choices made in the conversation. (@ciridae1)
     * Replaced the "fine" action with a "debt" action in "Hai Legacy 1" and updated the dialog to reflect this. (@Wedge009)
     * Updated the conversation in the Anomalocaris mission to clarify the requirements that the player must meet to continue the story. (@Hurleveur)
     * Edited the wording in the conversations of the Pond Strider missions for clarity and flow. (@flyingspacesquirrel)
     * "Ask Quarg About Coalition Late" now has a choice that accounts for the player having a non-vanilla starting location. (@nickshanks)
   * Balance:
     * Doubled the Pond Strider's fuel capacity from 300 to 600. (@flyingspacesquirrel)
     * Buffed the flamethrower. (@LixiChronikouOriou)
       * Firing fuel: .4 -> .15
       * Heat damage: 125 -> 160
       * Damage at max range: 50% -> 70%
   * Other:
     * The flamethrower and stack core can now appear equipped on randomly spawned NPCs after they each become available in the main campaign. (@LixiChronikouOriou)
     * Added administration costs to all ships. This cost is only used if using the fleet size limit gamerule that limits your fleet size based off of the administration costs of your ships. (@mOctave)
     * The Author government is no longer capable of fining the player. (@Amazinite)
     * Removed the "Pirate Advanced" outfitter from Stormhold. (@LixiChronikouOriou)
     * Updated the description of the Carrier to de-emphasize its ability to take part in head-to-head combat. (@flyingspacesquirrel)
     * All vanilla starting scenarios now have a "start: vanilla" condition set. (@Amazinite)
     * Hand to hand weapons and other outfits that don't require outfit space can now be jettisoned while in flight using the ship info panel. This includes nerve gas. (@Amazinite)
     * The Subsidurial person ship can now respawn after dying, and the Brick and Patrol Team person ships must have their entire fleet destroyed at once in order to die. (@Amazinite)
 * Game mechanics:
   * New mechanics:
     * Added a condition for determining if an event is scheduled. (@Amazinite)
     * Minable asteroids can now be damaged by corrosion. (@apttie)
     * Added a condition for checking how many of a given outfit could be taken from the player by a mission. (@warp-core)
     * Outfits can now be given a "can jettison" attribute that allows them to be jettisoned in flight from the ship info panel while being installed. (@Amazinite)
     * Minable asteroids now utilize heat mechanics, meaning that they can have their heat increased by heat and burn damage weapons, which can influence the tracking of infrared missiles and cause the asteroid to "overheat" and take overheat damage if the asteroid is defined to do so. (@TomGoodIdea)
     * The habitable distance of systems and the orbital periods of objects within the system can now be automatically calculated by the game if they are not defined in the system definition. (@Amazinite)
     * Targeting confusion characteristics can now be defined as root node objects and assigned to governments and fleets. (@Anarchist2)
     * Added an "optical size" attribute that gets used in place of mass when a ship is being targeted by an optical-guided projectile. (@Amazinite)
     * Persons can now be given flags that allow them to respawn after being killed, or require that every ship in the person's fleet be destroyed in order for the person to be killed. (@Amazinite)
     * Dated logbook entries now record the system you were in when the entry was recorded in addition to the date. Logs can now mark systems related to the entry, and these systems will then be highlighted when clicking on the log entry in the logbook. (@Amazinite)
     * Ships can now be defined to constantly generate effects, sparks, and leaks under various conditions like being active, disabled, or while exploding, as well as have animated hardpoint-like sprites for added aesthetics to ships. (@Amazinite)
   * Gamerules:
     * Added gamerules for tying the arrival distance of a system to its habitable distance. (@Amazinite)
     * Added a series of hardcore setting gamerules, including the addition of a permadeath mode. (@Amazinite)
   * Mechanics changes:
     * Ships that are entirely out of energy and do not have the means of generating their own energy are now considered disabled, causing them to drag to a stop instead of drifting off into deep space. (@apttie)
     * Improved tractor beam and flotsam behavior for heavy outfits. (@Amazinite)
       * Flotsam mass no longer influences the tractor beam's pull velocity.
       * Flotsam captured within a tractor beam cannot decay.
       * All flotsam has the same lifetime range (a random value between 60 and 180 seconds), instead of the range changing based on the contents of the flotsam.
     * When using a fleet equipped with jump drives, your escorts will now appear in the destination system close to your flagship, instead of scattering around the system in a ring. (@apttie)
     * Changed confusion to now be angle-based instead of position-based. (@Anarchist2)
     * Allow NPCs to randomly spawn with outfits like bunks and expansions in their cargo again. (@Amazinite)
     * Auto-aim is now much more intelligent when using multiple different fixed guns with differing velocities. (@Amazinite)
       * Non-homing secondary weapons will only be used for aiming when you have the secondary weapon armed and loaded.
       * Aiming will be done with the group of weapons that yield the highest shield and hull damage per second, instead of finding an average point where all weapons should be aiming, which could often result in no weapons being able to hit the target when using weapons with vastly different velocities, like a laser and a blaster.
     * Person and start scenario nodes can now load ships by just their model name, matching the behavior of adding ships to NPCs in missions. (@Amazinite)
     * The damage over time status sparks will no longer appear on ships that aren't affected by them. For example, ships that lack shields won't have disruption or discharge sparks, and ships that lack fuel capacity won't have leak sparks, even if the ship has accrued disruption/discharge/leak damage. (@Amazinite)
     * Multiple projectile collisions that occur in the same frame will now deal damage in a predictable order that maximizes shield and hull damage. (@Amazinite)
       * Previously, the total damage dealt to a ship could be influenced by the order the projectiles were created. This meant that you could deal significantly more or less damage against a target based on the order of your weapons in the hardpoints of your ships, or the order of your escorts in the player info panel if you had mixed weapon types, such as one laser that deals high shield damage and another that deals high hull damage.
     * Optical tracking is now based off of the size of the sprite (looking at the number of populated pixels in the sprite) instead of the mass of the ship. (@Amazinite)
 * Performance:
   * Ships now cache commonly used attributes and calculations. This should result in a noticeable improvement when there are lots of ships in the system. (@Amazinite)
 * User interface:
   * Preferences and controls:
     * Added an option to target asteroids based on the individual value of its drops instead of the sum value of all drops. (@Amazinite)
     * Added a "Damaged fighters retreat" preference that controls whether your fighters and drones should retreat to their carrier when damaged. (@Amazinite)
     * Damaged fighters can now be forced to deployed by holding Shift+Deploy. The message that appears when deploying fighters will inform you if some fighters did not deploy or were forced to deploy due to being too damaged. (@Amazinite)
     * Added a preference for controlling the font size of font displayed within scrollable or expandable areas of the UI. (@Amazinite)
     * Added a setting for locking fast-foward to the CapsLock state. (@ThrosturX)
     * Hitting the afterburner command while you don't have an afterburner installed or usable no longer cancels autopilot. (@Amazinite)
     * Sending the back/reverse command after sending a stop command no longer cancels the stop command, as the stop command keybind is shift+back. (@Amazinite)
   * Interface definitions:
     * Moved parts of the BoardingPanel and TradingPanel to be defined in the interface game data file. (@nickshanks)
   * Other:
     * Text in spaceport news, start scenario descriptions, boarding panel capture messages, the hail panel, and the lists of salaries, tribute, and licenses in the player info panel are now all capable of scrolling if the amount of text to display would overflow the UI. (@Amazinite)
     * If you capture a ship that has illegal outfits, you will now be warned of their presence in the boarding panel. (@ThrawnCA)
     * Renamed "max" to "capacity" in the ship info energy/heat table visible in the shops and ship info panel. (@Amazinite)
     * When scanned and fined by an NPC, the message that you were fined will now name the ship that was scanned and list the illegal outfits that you were fined for. (@Amazinite)
     * The outfitter, shipyard, and their respective map panels now support animated thumbnails for items in the shop. (@Amazinite)
     * When using the find functionality in the outfitter, scroll extra for outfits that are hidden under the key in the bottom left corner of the screen. (@Amazinite)
     * Tweaked the wording of the "unplunderable" attribute text in the outfitter to clarify that the outfit is only unplunderable if it is installed. (@ThrawnCA)
     * Added a highlight when hovering over outfits in the ship info panel to show that they can be selected for use with the dump cargo/jettison button. (@Amazinite)
     * Added a highlight when hovering over the name of your ship in the ship info panel to show that clicking on it allows you to rename the ship. (@Amazinite)
     * You are now prevented from naming a snapshot with characters that aren't allowed in a file name, instead of throwing an error after the file fails to be created. (@Koranir)
     * The boarding panel now has icons next to the plunderable outfits to designate whether they are in the ship's cargo hold or installed on the ship. (@Amazinite)
     * Changed the hotkey for the Sell Minables button in the trading panel from 'm' to 'n' or 'shift+m' as to not overlap with the common map keybind. (@Amazinite)
     * Clicking on empty space now clears your currently selected planet, in addition to previously clearing your currently selected ships or asteroid. (@Amazinite)
     * You can now buy outfits from the outfitter directly into storage using the "Store" button. (@Amazinite)
     * The "Uninstall" button in the outfitter now moves outfits from your ship into your cargo hold first. If your cargo hold is full, it moves outfits into storage instead. (@Amazinite)
     * If you are in the middle of a jump, the link between your current system and the destination system will now be drawn in blue on the map. (@TheGiraffe3)
     * When jettisoning an outfit, you are now warned if the outfit is marked as unique and is unlikely to be able to be regained once lost. (@Amazinite)
     * The shops now provide more info about ships. (@Amazinite)
       * Speed and acceleration when using an afterburner if one is installed are listed under the normal movement stats.
       * The energy/heat table has been broken into more rows, giving you the usage cost of each movement type instead of summarizing it into a single row. Additionally, when you have no energy capacity, a new "surge" row appears to inform you how much energy usage can be used instantaneous; this is important information for selecting weapons with a no battery build.
       * Various tooltips have been improved.
     * The logbook now includes the galaxy map on the right side of the panel instead of just darkening the background. (@Amazinite)
 * Under the hood:
   * Log a warning that plugin about.txt is deprecated for plugins that still use the old metadata format. (@TomGoodIdea)
   * Split the "Plugins" source file into "Plugin" and "PluginManager". (@TomGoodIdea)
   * The game now shrinks textures that are too large to upload to the GPU until they are accepted. (@TomGoodIdea)
   * Support devices with the EXT version of framebuffer objects. (@TomGoodIdea)
   * Replace some old require nodes with outfit condition checks. (@apttie)
   * Fix IntelliSense "missing OpenGL header" in VSCode on MacOS. (@nickshanks)
   * Rewrote the ExclusiveItem class to use std::variant. (@TomGoodIdea)
   * Moved various functionality from Ship to Entity. (@Amazinite)
   * Updated DrawList and BatchDrawList to utilize Drawables. (@Amazinite)
   * Replaced Body with Drawable in a few locations. (@Amazinite)
   * Removed an unused ship variant. (@LixiChronikouOriou)
   * There is now a command line argument for printing the state of objects in a system, including any object orbital periods and the habitable distance as calculated by the game if the system definition did not calculate it. (@Amazinite)
   * Added SDL3 support. (@tibetiroka)
   * Moved basic damage calculations from Ship and Minable to the base Entity class. (@Amazinite)
   * Added an include for in TaskQueue to allow the game to build on certain versions of clang. (@Amazinite)
 * CI/CD and development environment:
   * Update MacOS runners to macos-15. (@TomGoodIdea)
 * Documentation:
   * Improve the description of --tq-threads launch argument. (@TomGoodIdea)
 


Version 0.11.2

Version 0.11.2:
 * Bug fixes:
   * Content bugs:
     * Typo fixes. (@Daeridanii1, @kaiboyjiang, @ThrawnCA)
     * Fixed an issue where the Successor wormhole could not be used when hostile to the Successors. (@Daeridanii1)
     * Reduced the mass of the Hai Tracker Pod by 0.2 so its outfit space use matches its mass combined with the mass of its ammunition when full. (@Amazinite)
     * Removed a duplicate choice from a Successor mission. (@Daeridanii1)
     * Removed an unused fleet left over from Hai Reveal. (@warp-core)
     * Corrected the type and amount of ammunition installed on the Swan and one of its variants. (@RedTechGamer236)
     * Corrected the offer conditions of "Timothy Radrickson: Log Fix 6" so it does not duplicate log entries. (@apttie)
   * Engine bugs:
     * Fixed an issue where the settings panel wasn't using the correct name for the trading panel sell minables confirmation setting. (@Daniilik)
     * Corrected the parsing of the "tribute hails" planet child node so that it doesn't require a value in the same node. (@Amazinite)
     * Fixed a segfault on 32-bit Windows systems. (@TomGoodIdea)
     * Moved the planet description in the map panel down a little so it no longer overlaps with the system name when the game window is small. (@TomGoodIdea)
     * ShipEvents caused by hazards damaging ships are now properly sent. (@TomGoodIdea)
     * Sprite names that do not match any images will no longer result in an indefinite loading animation. (@Amazinite)
     * Fixed an issue where text input events were being sent to child panels twice, without filtering for only those in focus the second time. (@thewierdnut)
     * Fixed a crash when using the "Reload" button in the main menu after dying. (@Amazinite)
     * Shop buttons other than "Buy" will no longer be active when an unowned license is selected in the outfitter. (@Amazinite)
     * Fixed parsing of the "ignore universal" child of government illegals and atrocities nodes. (@Amazinite)
     * Fixed an issue where outfits in stock but not normally sold at an outfitter would not have thumbnails loaded when using deferred sprite loading. (@TomGoodIdea)
     * Corrected the length of the shop sidebar scroll bar. (@TomGoodIdea)
     * Deployed, out of system carriables will now be able to transit wormholes to reach the flagship, instead of getting stuck hovering over them. (@warp-core)
     * Double-clicking on a non-disabled ship no longer attempts to board the nearest disabled ship if one is present in the system. (@Amazinite)
     * Clicking on a ship you have already targeted no longer makes the targeting sound effect if no change has occurred. (@Amazinite)
     * Right mouse button no longer targets ships when the "Control ship with mouse" preference is on. (@Amazinite)
     * Fixed the dialogs for selling outfits or minables from the trade panel having a double "of" in the message, and replaced "X tons of" with "X units of" when selling minables. (@Amazinite)
 * Game content:
   * New content:
     * Pacifist worlds in human space that do not offer tribute now have their own set of responses when it is demanded. (@mOctave)
     * Added a rewritten version of the Bloodsea exotic life culture conversation. (@kaiboyjiang)
     * Added some new options for players with very powerful fleets in some early FW missions. (@mOctave)
   * Artwork:
     * Added unique landscapes for most Successor planets. (@Daeridanii1, @LazerLit)
   * Balance:
     * Increased the base required crew of the Skein from 7 to 9. (@kaiboyjiang)
   * Other:
     * Improved wording in Patir Mystery 14 and 35. (@kaiboyjiang)
     * Renamed the "rich" planet attribute to "wealthy". (@Amazinite)
     * Added a new description to Uuoru-Veldt-Stir. (@Daeridanii1)
     * Heliarch and Successor outfitters now sell Scram Drives. (@Daeridanii1)
     * Display the message about the magnetar the first time entering the Decet system. (@ThrawnCA)
 * Game mechanics:
   * New mechanics:
     * Added a "mandatory crew" attribute which works similarly to required crew, but is still required on ships with the "automaton" attribute. (@Amazinite)
     * The player's cloak state will now persist in the save file. (@Amazinite)
 * Graphics:
   * Added a setting to choose between linear and nearest-neighbour interpolation for textures. (@TomGoodIdea, @warp-core)
   * Plugins can now override the default fonts. (@TomGoodIdea)
 * User interface:
   * Added a dropdown menu for quantity to the shop panels. (@thewierdnut)
   * Improved names and descriptions of some trading related settings. (@mOctave)
   * Added a setting for globally modifying text alignment in paragraphs. (@TomGoodIdea)
   * Setting tooltips now describe the different states in a list instead of a paragraph. (@Daniilik)
   * Improved some gamerule tooltips. (@Amazinite)
   * Improved how the positions of tooltips that would exceed the bounds of the window are adjusted to make the tooltips fit. (@Amazinite)
   * When using the mouse to control the flagship, the middle mouse button now issues firing orders to escorts, instead of the right mouse button, so escorts can be ordered to fire on a target without firing the flagship weapons, which are operated by the right mouse button. (@TomGoodIdea)
   * The sell minables/outfits confirmation dialogs from the trading panel will now start with the "Ok" button in focus, instead of "Cancel" so hitting enter immediately accepts the sale. (@warp-core)
 * Under the hood:
   * It is now possible to disable version strings being added to shader files automatically, allowing the shader files to list their own versions. (@TomGoodIdea)
   * Added command line arguments for manually setting a static prng seed and the number of task queue worker threads. (@knarrff)
 * Documentation:
   * Updated the minimum required MacOS version to 10.15 as older versions provide a C++ STL implementation that is missing required features. (@TomGoodIdea)
 


Version 0.11.1

Version 0.11.1:
 * Big changes:
   * Gamerules are now specific to individual pilots and can be modified from within the game through a new button on the main menu. Old save files will automatically have this button available to them, while new save files will have to edit their gamerules to set the "Lock gamerules" value to false from the start scenario menu. This can also be used to disable the button on old save files, if you don't want to be able to change the gamerules for your existing saves. (@Amazinite)
   * Added a new gamerule that allows you to limit the number of ships that you can have in your fleet based off of various factors. (@Amazinite)
   * Added a continuation of the Patir Mystery storyline, further investigating the Patir system with the help of the Remnant. (@beccabunny)
 * Bug fixes:
   * Content bugs:
     * Typo fixes. (@Amazinite, @Anarchist2, @Jan-Braaksma, @kaiboyjiang, @TheGiraffe3)
     * Message buoys referring to the bombings of Geminus and Martini will now only appear after those events occur. (@bene-dictator)
     * Corrected 'olofez engine flare locations. (@kaiboyjiang)
     * Increased the payment from "Bounty Hunting (Marauder X)" to match the listed value. (@Anarchist2)
     * Increased the price of the Tiny VLS from 36000 to 54000 to bring it more in line with the other VLS weapons. (@kaiboyjiang)
     * Removed various missions with LLM generated content. (@Anarchist2)
     * Updated the text of various choices where an action is performed to be first person. (@Amazinite, @Anarchist2)
     * Removed an NPC that was incorrectly included in "Coalition: Struggling Author 1". (@acolden-IAS)
     * The Hai start now also gives the player a Pilot's License. (@TheGiraffe3)
     * Rotated the image for Ssil Vida by 180° so it is lit from the correct direction. (@beccabunny)
   * Engine bugs:
     * Fixed a crash that could occur when capturing mission NPCs. (@warp-core)
     * Fixed a past-the-end iterator dereference. (@warp-core)
     * Shop tooltips no longer get stuck when using a zero second activation delay. (@Amazinite)
     * Homing weapon haywire chances are no longer related to the range of the first stage, so it is no longer broken when the first stage has a range of zero. (@Anarchist2)
     * Panels are resized when pushed to the stack, fixing an issue where planetside panels were not accounting for window size changes. (@Amazinite)
     * Fixed a crash when generating entering/transition missions when there are no active missions. (@Amazinite)
     * Fixed an issue where the requirements of known wormholes were not correctly updated when loading a save with event changes. (@Amazinite)
     * Fixed zooming in the map shipyard and outfitter views. (@TomGoodIdea)
     * Flagship cargo space free on the boarding panel will no longer be hidden when boarding uncapturable ships. (@TomGoodIdea)
     * Text in NPC actions will now use the correct "" substitution. (@Amazinite)
     * Fixed an issue where the impact locations for some projectiles were not being calculated correctly, affecting where effects were drawn. (@Amazinite)
     * Fixed a crash when a "phasing" weapon hits a minable. (@Amazinite)
     * Fixed a crash in some cases when there is no flagship. (@Amazinite)
     * Correctly calculate cost when buying multiple outfits at once when some are depreciated. (@NellyDevo)
     * FinishLoading is no longer run for undefined ships and planets. (@Amazinite)
     * AI::AskForHelp now stores potential helpers in a WeightedList instead of duplicating elements in a vector, preventing a possible crash due to too many elements. (@Amazinite)
     * Invalid person ships will no longer be spawned. (@Amazinite)
     * An invalid government on a mission NPC will now mark the entire mission as invalid. (@Amazinite)
     * Fixed some cases where an incorrect message was given when an outfit could not be installed. (@xobes)
     * Carriable ships with the "staying" personality will now only dock with carriers that are also "staying" and so can no longer be removed from the system while docked. (@Amazinite)
     * Properly disable shop buttons when the selected item cannot be purchased. (@Amazinite)
     * Correct and improved the error message when attempting to install an outfit that would cause an attribute to go out of bounds. (@Amazinite)
 * Game content:
   * Mission changes:
     * Invisible missions that do not create a dialog or conversation are now "non-blocking". (@Nova1422)
     * The Deep Convoy missions will no longer offer while another is active. (@Amazinite)
   * Artwork:
     * Added unique explosion effects for Quarg ships. (@GefullteTaubenbrust2)
     * Created new sprites for the Tangled Shroud haze. (@Daeridanii1)
   * Balance:
     * Reduced all sources of optical jamming by 90%. (@Anarchist2)
     * Various changes around the Heavy Rocket. (@Anarchist2)
       * The Heavy Rocket Launcher now fires as a stream, instead of clustered.
       * Increased missile strangth for both Launcher and Pod: 16 -> 24.
       * Changes to Clipper (Heavy) armament:
         * Replaced Heavy Rocket Pods with Heavy Rocket Launchers.
         * Replaced Meteor Missile Launchers with Meteor Missile Pods.
       * Changes to Hawk (Rocket):
         * Replaced Heavy Rocket Pods with Heavy Rocket Launchers.
         * Replaced D41-HY Shield Generator with D14-RN Shield Generator.
     * Various changes to Successor outfits and ships. (@Daeridanii1)
       * Reduced shield energy:
         * "Byiaa" Shield Cortex: 2.92 -> 2.53
         * "Ej" Shield Cortex: 4.7 -> 4.0
         * "Jaase" Shield Cortex: 7.4 -> 6.4
         * "Jorv" Shield Cortex: 16.1 -> 14.0
       * Removed the -0.05 shield generation multiplier from the Shield Cortex Interface and updated the description accordingly.
       * Reduced the hull damage of the "Ojet" Bimodal Coilgun (and Turret) submunitions from 20 to 14. The total hull damage from the first stage is unchanged.
       * Reduced the shield damage of the "Sjeja" Kinetic Lance from 1336 to 1069.
       * Added missing firing force of 25 to the "Ojet" Bimodal Coilgun.
       * Aaulqra:
         * Hull energy and heat: 4.0 -> 3.025
       * Kaskhorade:
         * Hull repair rate: 3.25 -> 2.225
         * Hull energy and heat: 3.26 -> 2.4475
       * Nnaatej:
         * Hull energy: 0.2 -> 0.11
         * Hull heat: 0.25 -> 0.11
       * Seiitej:
         * Hull repair rate: 1.2 -> 0.95
         * Hull energy and heat: 1.74 -> 1.045
       * Stolsaqra:
         * Hull energy and heat: 0.4 -> 0.33
       * Veusade:
         * Hull energy and heat: 2.1 -> 1.595
       * Vujlet:
         * Hull energy and heat: 1.27 -> 0.9625
     * Added more Quarg ships as reinforcements in "Wanderers: Kor Efret 3" to account for reduced capabilities of individual Quarg ships following the Quarg ship and outfit rework. (@Saugia)
       * One Quarg Hydra, three Quarg Wyverns, and two Quarg Wardragons, instead of two Wyverns and one Wardragon, travelling from Host.
       * Two Hydras, instead of one Hydra and three Wardragons, travelling from Mesuket.
       * Three Wardragons, instead of one, entering the Kashikt system (where the mission takes place).
     * Rebalanced various alien secondary weapons. (@Anarchist2)
       * Hai Tracker:
         * Tracker Storage Pod:
           * "mass": 4.4 -> 2.4
           * "outfit space" needed: 10 -> 8
         * Hai Tracker Pod:
           * "mass": 8 -> 5
           * "outfit space" needed: 19 -> 16
           * "infrared tracking": 0.4 -> 0.2
       * Korath Piercer:
         * Piercer Missile:
           * "cost": 3500 -> 830
           * "mass": 3 -> 0.07
         * Piercer Missile Rack:
           * "mass": 2.2 -> 0.1
           * "piercer capacity": 16 -> 98
         * Piercer Missile Launcher:
           * Removed homing, turning, acceleration, and drag, making the Piercer a ballistic, straight line weapon.
           * "mass": 18 -> 7
           * "outfit space" needed: 27 -> 21
           * "weapon capacity" needed: 27 -> 21
           * "piercer capacity": 31 -> 197
           * "inaccuracy": 3 -> 1.5
           * "lifetime": 200 -> 47
           * "reload": 72 -> 23
           * "firing energy": 29 -> 9
           * "firing heat": 144 -> 46
           * "shield damage": 290 -> 130
           * "hull damage": 440 -> 197
           * Created a death effect that is different to the explosion effect.
       * Korath Cluster Mine:
         * Cluster Mine:
           * "mass": 0.7 -> 0.4
         * Cluster Mine Rack:
           * "mass": 2.7 -> 0.8
           * "minelayer capacity": 9 -> 20
         * Cluster Minelayer:
           * "mass": 36 -> 15
           * "outfit space" needed: 48 -> 27
           * "weapon capacity" needed: 48 -> 27
           * "minelayer capacity": 17 -> 41
       * Korath Firelight:
         * Firelight Missile:
           * "mass": 0.3 -> 0.8
         * Firelight Storage Rack:
           * "mass": 3 -> 3.2
           * "outfit space needed": 6 -> 8
           * "firelight missile capacity": 10 -> 6
         * Firelight Missile Bank:
           * "mass": 22 -> 13
           * "firelight missile capacity": 20 -> 18
           * "blast radius": 48 -> 0 (all stages, trigger radii also removed)
           * "Turning" stage:
             * "tracking" replaced with "optical tracking".
             * "leading" and "throttle control" homing capabilities removed.
           * "Activated" stage:
             * "corrosion damage" 2 -> 0
       * Korath Firestorm:
         * Firestorm Torpedo:
           * "mass": 1 -> 2
         * Firestorm Torpedo Rack:
           * "mass": 7 -> 8
           * "firestorm torpedo capacity": 13 -> 6
         * Firestorm Battery:
           * "mass": 35 -> 22
           * "corrosion damage": 5 -> 0
       * Remnant EMP:
         * EMP Torpedo:
           * "mass": 1 -> 0.6
         * EMP Torpedo Storage Tube:
           * "mass": 5 -> 4.8
           * "emp torpedo capacity": 7 -> 12
         * EMP Torpedo Bay:
           * "emp torpedo capacity": 9 -> 15
           * "infrared tracking": 0.7 -> 0.2
       * Remnant Teciimach:
         * No longer uses Teciimach Canister as ammunition, now uses the EMP Torpedo instead. Updated descriptions, conversations, and events as appropriate.
         * Teciimach Canister and Teciimach Canister Rack:
           * Deprecated.
         * Teciimach Bay:
           * "mass": 9 -> 6
           * "outfit space" needed: 13 -> 18
           * "weapon space" needed: 13 -> 18
           * Ammunition capacity: 9 -> 20
           * "reload": 310 -> 330
           * Firing mode: cluster -> stream
           * "velocity": 8 -> 7
           * "turn": 2.5 -> 2
           * "infrared tracking": 0.8 -> 0.2
           * "radar tracking": 0.9 -> 0.8
           * "shield damage": 900 -> 700
           * "hull damage": 125 -> 100
           * "disabled damage": 60 -> 0
           * "ion damage": 65 -> 48
           * "scrambling damage": 65 -> 48
           * "energy damage": 2000 -> 0
           * "missile strength": 95 -> 80
         * Teciimach Pod:
           * "mass": 3 -> 4
           * Removed "cluster"
           * "burst reload": 110 -> 330
           * "reload": 620 -> 660
           * "firing energy": 350 -> 400
           * "firing heat": 16 -> 18
           * "velocity": 8 -> 7
           * "turn": 2.5 -> 2
           * "shield damage": 900 -> 700
           * "hull damage": 125 -> 100
           * "disabled damage": 60 -> 0
           * "ion damage": 60 -> 48
           * "scrambling damage": 60 -> 48
           * "energy damage": 2000 -> 0
           * "missile strength": 95 -> 80
       * Ka'het EMP Deployer:
         * "mass": 18 -> 10
         * "emp torpedo capacity": 16 -> 27
         * "infrared tracking": 0.7 -> 0.2
       * Wanderer Thunderhead:
         * Thunderhead Missile:
           * "mass": 0.3 -> 0.27
         * Thunderhead Storage Array:
           * "mass": 2 -> 0.4
           * "thunderhead capacity": 20 -> 28
         * Thunderhead Launcher:
           * "mass": 14 -> 11
           * "thunderhead capacity": 40 -> 56
           * First stage:
             * "radar tracking": 0.9 -> 0.1
             * "infrared tracking": 0.6 -> 0.3
           * Second stage (split):
             * "optical tracking": 0.9 -> 0
             * "infrared tracking": 0 -> 0.1
             * "radar tracking": 0.6 -> 0.3
       * Bunrodea Swarm:
         * Swarm Missile:
           * "mass": 0.04 -> 0.03
         * Swarm Clip:
           * "mass": 2 -> 1
           * "outfit space" needed: 10 -> 7
         * Swarm Pod:
           * "mass": 5 -> 3
           * "outfit space" needed: 21 -> 15
           * "weapon capacity" needed: 21 -> 15
           * "radar tracking": 0.5 -> 0.2
           * "optical tracking": 0.5 -> 0.6
       * "Sjeje" Kinetic Lance:
         * "mass": 60 -> 54
       * Updated ship installed outfit lists to account for ammunition and ammunition capacity changes.
     * Increased the cargo space on some Successor ships. (@solardawning)
       * Aaulqra: 15 -> 25
       * Kaskhorade: 140 -> 240
   * Other:
     * Raven now has a unique Gunboat variant with a Scram Drive, and, in "FW Reconciliation 1B", recommends the player install one if they don't already have one, as well. (@Anarchist2)
     * Expanded the description of the Incipias in their first contact conversation. (@Eatswind)
     * Added text directing the player towards post-bombing jobs to the conversations for the bombings if they are on Geminus or Martini. (@RedTechGamer236, @TheGiraffe3, @Anarchist2)
 * Game mechanics:
   * New mechanics:
     * The messages a planet responds with when tribute is demanded can be customized at the government and planet level. (@TheGiraffe3)
     * Weapons can now be given the "exclude submunition damage" property so they do not apply the damage of their submunitions if they hit a target. (@Amazinite)
     * Added various new text replacements relating to the pilot's starting scenario. (@nickshanks)
     * Projectiles can now spawn submunitions upon exploding or colliding. (@Amazinite)
     * Added conditions and text replacements for the player's current and previous planet and system. (@Amazinite)
     * Any outfit can now define "linked" outfits that should be uninstalled alongside it, similar to the "ammo" property, but without the prompt to purchase the outfit when you have space. (@Amazinite)
   * Mechanics changes:
     * NPCs will deprioritize hostile ships that are already targeted by overwhelming firepower. (@Azure3141)
     * A ship becoming disabled or destroyed by corrosion will now have that event be attributed to the last ship that dealt damage to it. (@TomGoodIdea)
     * Optical jamming now affects a target's effective mass instead of the lock chance, so very massive ships will require more jamming than smaller, but still massive ships to achieve the same reduction in lock chance when starting from near 100%. (@Anarchist2)
     * Homing weapon projectiles can now target minables. (@TomGoodIdea)
     * In entering/transition missions, the "" text substitution will now be replaced by the name of the system the mission was offered in. (@Amazinite)
     * Expanded the missing plural name check for outfits and ships. (@ThrawnCA)
     * The player can now receive information from scanners on escorts, instead of only the flagship. (@Amazinite)
     * Raid fleets can now be disabled with a gamerule. (@Amazinite)
 * Graphics:
   * The hyperspace flash, camera acceleration, and landing zoom settings are now off by default. (@warp-core)
   * HUD elements no longer blink while landed. (@TomGoodIdea)
   * Spaceports can now have their own landscape image, distinct from the planet landscape. (@nickshanks)
   * Planets can now list multiple landscapes; one will be chosen at random on each landing. (@nickshanks)
   * Added a preference to highlight all ships or only your escorts, in addition to the existing preference to highlight just your flagship. (@Amazinite)
   * The main zoom factor no longer has an upper limit of 200%. The exact limit now only depends on the game window size. (@Amazinite)
 * User interface:
   * Move orders issues from the map can now be canceled. (@TomGoodIdea)
   * Added a visual indicator for incoming nuclear missiles to the HUD. (@TomGoodIdea)
   * Pausing the game now plays a sound. (@Terin)
   * An offering mission will now include markers for tracked NPCs as well as the destination on the map. (@Amazinite)
   * The map marker for the destination of a mission that has already failed will no longer blink. (@Amazinite)
   * Updated the help message about help messages to account for the help message reset setting moving page. (@TomGoodIdea)
   * Added a message about transferred fuel and energy when boarding a ship. (@Amazinite)
   * Added separate buttons for selling outfits and minables to the trading panel, with optional confirmation dialogs. (@xobes, @UnorderedSigh)
   * Added a setting to disable the demand tribute confirmation dialog. (@Amazinite)
   * The behavior of the ammunition refill dialog can now be customized. (@Amazinite)
 * Performance:
   * Enabled optional deferred loading for scene, thumbnail, planet, and star sprites. Intended for use on systems with low VRAM. (@Amazinite)
   * Fleets assigned to a system are no longer looped over when the fleet multiplier gamerule is zero. (@Amazinite)
 * Under the hood:
   * The map sales key is now defined by an interface. (@nickshanks)
   * Replaced various different constructors of the Dialog class with static methods. (@Amazinite)
   * Moved sprite and animation properties of the Body class into a new parent: Drawable. (@nickshanks)
   * Standardized the style of const pointer declarations. (@TomGoodIdea)
   * The radar scale is now controlled by an interface value. (@Amazinite)
   * Added a unique error message for when an @2x image is ignored because no corresponding standard size image exists. (@Amazinite)
   * Include cmath header for some gcc implementations. (@carlo-bramini)
   * Created a PilotProfile class for tracking properties of a pilot which are the same across all of it's snapshots. (@Amazinite)
 * Documentation:
   * Updated the version of gcc listed in the build instructions. (@TomGoodIdea)
 * CI/CD and development environment:
   * Disabled sanitizers when compiling on cygwin. (@carlo-bramini)
   * GitHub Actions workflows now use lukka/get-cmake v4.2.3 instead of the latest version, to avoid issues when using some newer versions. (@TomGoodIdea)
   * Updated some SDL adjacent code to fix integration tests in the Steam Linux environment. (@tibetiroka)
   * Improved the code style checker's ability to detect incorrectly formatted copyright headers and fixed some issues it had previously missed. (@xobes)
 


Version 0.11.0

Version 0.11.0:
 * Breaking changes:
   * The Hai Reveal storyline has been removed from the game. Only about a dozen missions were ever available, they conflict with the plot of other storylines, and no progress has been made on the storyline in several years, so we've opted to remove it for now. (@Amazinite)
 * Big changes:
   * Added three more human starting scenarios to the game. (@Anarchist2)
   * The outfitter and shipyard UI has been updated to have on-screen buttons for all of the possible actions that were previously only tied to keybinds. (@xobes)
 * Bug fixes:
   * Content bugs:
     * Typo fixes. (@Anarchist2, @Canned-Seagull, @Nova1422, @oliv3r, @reticent-rem, @ThrawnCA, @warp-core, @Wedge009)
     * Fixed conditions in the Patir storyline not being set properly by events. (@warp-core)
     * Shortened a spaceport news phrase to better fit the UI. (@Saugia)
     * The "Lost Racer 2 - Continued" mission can now offer without needing to take off and land again. (@warp-core)
     * Updated the "Rulei: You Are (Not) Alone" mission so that it doesn't block the Pookie mission from offering. (@Anarchist2)
     * The Carriers in "FW Pug 4: Escorts" now have enough fighters to fill their bays. (@warp-core)
     * Fixed the Star Tail Storage and High-Velocity Spike Rack not selling stored ammo when sold. (@TheGiraffe3)
     * The Hovercraft Racer Transport jobs no longer offer on Sunracer and now mention their payment in the description. (@TheGiraffe3)
     * Prevented the Heliarch Investigation missions from offering if you've already joined the Lunarium. (@Arachi-Lover)
     * Removed invalid eXIf chunks from various images. (@warp-core)
     * Fixed various overly-indented lines after "label" nodes in conversations. (@warp-core)
     * The Heavy Gust's description no longer mentions the Tempest, as it may not be available yet. (@Quantumshark)
     * Added a "blocked" dialog to "Remnant: Cognizance 33" for when you don't have enough space to accept the mission. (@TheGiraffe3)
     * Fixed the Cutthroat ship not having explosion damage when destroyed. (@Quantumshark)
     * Added clearance to various missions where Hai-home is the destination. (@Nova1422)
     * Fixed the "Rich student transport" mission not having a deadline despite the description suggesting there was one. (@kaiboyjiang)
     * Fixed a looping conversation in "Lost Racer 3". (@ThrawnCA)
     * Removed duplicate action definitions of the same trigger type in a few missions. (@MereDecade)
     * The "Remnant: Return the Samples" missions now have mission cargo, as the mission text implied they did. (@Amazinite)
     * Fixed an incorrect offset on the wide screen trade panel interface. (@nickshanks)
     * "FW Liberate Delta Sagittarii" now uses a "to accept" node instead of a branch that declines the conversation, preventing an event from erroneously triggering. (@Anarchist2)
     * Corrected the dimensions of the "Open Saves" button on the main menu. (@TomGoodIdea)
   * Engine bugs:
     * Made explicit use of a mediump precision int in certain shaders where the lack of explicit precision was causing shader compilation to fail for some. (@thewierdnut)
     * Changing the main zoom factor no longer breaks the display of planet descriptions. (@TomGoodIdea)
     * The player's ships no longer launch after the player dies in a conversation while landed. (@Anarchist2)
     * Fixed a memory leak in PlayerInfo caused by reloading the save file while a mission offer conversation is open. (@warp-core)
     * Fixed a crash that could be caused by having negative damage over time values on a ship. (@TomGoodIdea)
     * Fixed a crash on startup caused by invalid syntax in a plugin.txt file. (@TomGoodIdea)
     * Missing FillShader now shows the appropriate error message instead of crashing the game. (@thewierdnut)
     * The display names of outfits and ships are now used when sorting them in the UI, instead of their identifiers. (@TomGoodIdea)
     * When an event removes an object from a system which has a landable planet, the planet is now informed that it is no longer in that system. (@warp-core)
     * Timestamp formatting now uses a more compatible format for Windows. (@TomGoodIdea)
     * Fixed a crash caused by mission actions referring to an undefined message. (@warp-core)
     * Fixed a crash that could occur when a mission action took one of your ships while in a shop. (@Amazinite)
     * Fixed the fast-forward state being out of sync when reloading a dead pilot. (@TomGoodIdea)
     * Fixed an inconsistent crash that could occur when playing MP3 or FLAC files. (@warp-core)
     * Projectiles incapable of turning now skip over all homing code in projectile movement. (@nickshanks)
     * The frame rate of a sprite is now always saved in the player's save file. (@nickshanks)
     * Escorts can now be ordered to move to the exact center of the system when sending orders from the map. Previously, orders to move to the exact center would be ignored. (@TomGoodIdea)
     * If the "disabled fighters avoid projectiles" gamerule is active, projectiles with a trigger radius will no longer be set off by disabled fighters. (@Anarchist2)
 * Game content:
   * New content:
     * Added various culture conversations to human space about exotic lifeforms. (@reticent-rem)
     * Added a mission chain about helping a struggling author. (@a-random-lemurian, @TheGiraffe3)
     * Added a new Heliarch hand-to-hand weapon. (@Arachi-Lover)
     * Added various "Drak Revelation" culture conversations around the galaxy. (@Arachi-Lover)
     * Added new civilian hails. (@MauriceTaniel)
     * Added a short new mission chain for the Ka'het. (@beccabunny)
     * Added hail messages that appear when entering certain systems in human space. (@bene-dictator)
   * Mission changes:
     * Various missions now make use of "mark" instead of "waypoint" where visiting the system of interest isn't a necessary objective for the story. (@TheGiraffe3, @warp-core)
     * Ryk Bartlett in "FW Albatross 2A" now has a unique Bastion model and his fleet is set in stone instead of being randomized. (@bene-dictator)
     * The "lost in coalition" mission now checks for the presence of the "jump drive" attribute instead of the "Jump Drive" outfit, preventing it from erroneously offering if the player has a jump drive from a plugin. (@ziproot)
     * "Sad Archie" and "Wanderers: Mereti Observation" now use mission timers instead of relying on a mission NPC to keep track of time. (@danaris, @ziproot)
     * The player will now receive a warning if they fail or decline the Free Worlds intro missions. (@Anarchist2)
     * The Remnant technology mission for the S-970 Regenerator now has an option to decline if the player only has a limited number of the outfit. (@kaiboyjiang)
     * Adjusted the wording and structure of various Gegno missions based on feedback. (@Saugia)
     * Added an option to admit to Ivan that you want to share his research in "Remnant: Deep Surveillance". (@ThrawnCA)
     * "Dangerous Games 1" now provides landing clearance to the destination. (@nickshanks)
     * Broadened the travel instructions given in "Expeditions Past 9" to improve the odds of the player finding the correct system. (@ThrawnCA)
     * Updated various missions to make use of the "visited" location filter instead of using the "inaccessible" system attribute, which has now been removed. This means that the Remnant research expedition jobs will now only choose from systems you've already visited before. (@Amazinite)
     * The "What happened to Rand?" mission will now have its objective complete if you manage to reach Zeta Aquilae. (@ThrawnCA)
     * Updated the wording in "FW Reconciliation 2A" to make it clear that new technology is being made available for you to purchase, not gifted to you for free. (@nickshanks)
     * Reworked bounty jobs. (@Anarchist2)
       * The governments now have the same attitude toward the Bounty governments as they do the Pirate government, allowing you to gain reputation with various governments for taking Bounty jobs.
       * The combat rating requirement of the jobs has been greatly lowered, requiring anywhere from about 25% to 85% less combat rating in order for the jobs to offer.
       * Most bounty NPCs now spawn ships from named fleets instead of defining a unique fleet for each job. These fleets have been adjusted to result in a smoother increase in difficulty for larger bounty missions.
         * With the above two changes, the strength of bounty NPCs should now roughly match the strength that you are expected to be at when you unlock them.
       * The language of bounty job names is more direct. With combat rating requirements lower, there's a potential risk of the player accepting jobs well outside their capabilities. Having the category of the ship in the job names should make it easier to tell the difficulty of a bounty at a glance.
       * Bounty NPCs now use the "marked" personality instead of "nemesis" so that they aren't destroyed by other governments as a result of the above change.
       * Bounty NPCs in many jobs are capable of spawning further away, but now have the "tracked" personality, meaning that their location is pinged on the galaxy map, removing the aspect of you needing to track down the bounty on your own. Various story missions that require you to hunt down a bounty have been given the same treatment.
       * Disguised pirates now only spawn one jump away from the origin system. Since they are disguised, they have not gained the "tracked" personality.
       * The payment of the Marauder bounties has been altered to better reflect their difficulty.
     * Updated all of the invisible missions that used to offer the moment you started a new save to now use the "entering" and "transition" offer locations, meaning that they only get stored in the player's save file the moment they're needed. (@Amazinite, @warp-core)
   * Balance:
     * Rebalanced afterburners. (@Azure3141)
       * Increased the fuel consumption of afterburners across the board.
         * +100% for Korath afterburners.
         * +150% for the Avgi afterburner and +66% for the Avgi fusion torch engines.
         * +50% for human and Remnant afterburners.
       * Reduced the thrust of the Korath afterburners by ~10% at the low end and ~30% at the high end.
       * Reduced the thrust of the Caldera Afterburner by ~9%.
       * Greatly increased the heat produced by the Bellows-Class Afterburner (18 -> 72).
     * Considerably reduced the cost of the High-Velocity Spike Rack from 350k to 50k. (@Daeridanii1)
     * Mining efficiency is now more effective on rarer asteroids compared to more common ones, instead of being less effective. (@Quantumshark)
       * Aluminum asteroids have been untouched: +20% yield.
       * Silicon asteroids are now less effected: +27% -> +11% yield, with asteroids between silicon and aluminum being changed less.
       * Platinum asteroids are now much more effected: +4% -> +38% yield, with asteroids between platinum and aluminum being changed less.
       * The above yield values are when using a human mining laser. Other mining weapons will produce different yield improvements.
     * Reduced the spawn rate of Korath raider fleets into human space. The spawn rates of these fleets were greatly increased in 2016 to make it easier to plunder jump drives from them, but there are now many more methods of obtaining jump drives, so the spawn rates have been lowered close to their old values (or an equivalent value for newer systems) to make encountering hostile aliens in human space much more of a rarity. (@Anarchist2)
     * Rebalanced some human missile weaponry. (@Quantumshark)
       * Increased the burst reload time of the Javelin Mini Pod from 15 to 20 frames. The overall DPS is unchanged.
       * Increased the Heavy Rocket's blast radius from 90 to 150 units.
       * Changes have been made to the Torpedo and Typhoon launchers to differentiate them from one another, instead of having the Typhoon just be a strictly better Torpedo.
         * The Torpedo Launcher/Pod's projectile velocity now ramps from 0 to 6 instead of 7 to 6. No other changes.
         * The Typhoon Launcher/Pod's projectile velocity now ramps from 4 to 3.75 instead of 6 to 4, fires 25% slower, and has a 45% longer projectile lifetime.
         * "With these changes, the Torpedo becomes a missile that is very easy to dodge, and will only hit large targets, while the Typhoon becomes something of a creeping death - sluggish and easily outrun, but still hard-hitting and very unlikely to miss. This will hopefully differentiate the two more. If the reduction in accuracy proves to be enough, the Torpedo could stand to have its top speed increased somewhat, too."
     * Greatly reduced the spawn rate of Navy surveillance fleets in Free Worlds territory near the start of the war. (@Quantumshark)
     * Missiles now check for a lock the moment they're fired. (@Anarchist2)
     * "blindspot" missiles that go haywire can now entirely lose their target if they face away from their target while haywire. (@Anarchist2)
   * Other:
     * Adjusted the order of the Kestrel (More Weapons) weapon hardpoints to match the placement positions of the weapons on the other variants. (@Saugia)
     * Adjusted some systems and planets in Gegno space to facilitate planned future content. (@Saugia)
     * Unfettered planets now have custom bribe rejection hails. (@Saugia)
     * Adjusted the description of the Langrage Hyper-Heavyer. (@kaiboyjiang)
 * Graphics and artwork:
   * Adjusted some human landscape images to better fit their planet descriptions. (@Anarchist2)
   * Cleaned up various UI sprites to maintain consistency in art style. (@Anarchist2)
 * Game mechanics:
   * New mechanics:
     * Weapon hardpoints on ships can now be marked as "inside", hiding the hardpoint sprite of the weapon in that mount. (@TomGoodIdea)
     * Planets and ports can now have various condition sets that control the player's access to things such as: knowledge whether the planet is landable, access to the outfitter, shipyard, or other services, the ability to bribe your way onto the planet, and more. (@Amazinite)
     * Added a "tracked" mission NPC personality that places a waypoint marker on the map for whatever system the tracked NPC ship(s) are located in. (@Amazinite)
     * Missions can now "mark" and "unmark" systems within other missions. (@warp-core)
     * Conversation choices can now have "to activate" condition sets that prevent the choice from being chosen if the conditions are not met, but do not prevent the choice from being visible to the player. (@Amazinite)
     * Governments can now be made to ignore the "illegal" and "atrocity" attributes on outfits and ships. (@TomGoodIdea)
     * Governments can now have custom death sentence conversations on a per-item basis. (@TomGoodIdea)
     * The player's logbook can now contain scene images. (@xobes)
     * Missions can now have timers that count down if certain circumstances are met (e.g. if the player is near the system center and is not moving) and trigger a mission action after the timer has elapsed. (@danaris, @Amazinite)
     * Game actions from missions are now capable of sending messages. (@TomGoodIdea)
     * "goto" nodes can now be direct children of "conversation" nodes, instead of requiring that they be indented under a text node. (@MereDecade)
     * Added "previous system government: " and "previous system attribute: " conditions for checking the government or attribute of the system the player was previously in. (@Amazinite, @Anarchist2)
     * Governments can now be made to consider any action against them provocative or an atrocity. (@Hurleveur)
     * Condition sets now support "min" and "max" keywords as in-line functions. (@petervdmeer)
     * Planets can now be made to incur a daily reputation penalty with their government when dominated, in addition to the tribute payment. (@TomGoodIdea)
     * The response to accepting or rejecting bribes can now be customized on a per-government level for ships and planets separately. (@CrispySummers, @TheGiraffe3)
     * Governments can now be made to reject all bribes on a ship and per-planet level after your reputation with them drops below a given threshold. (@warp-core)
     * Plugins can now fully overwrite any vanilla objects by placing an "overwrite" node prior to the new definition that they want to use. (@Amazinite)
     * The "jump effect" attribute can have an optional 2nd value to scale down the number of sparks created. (@Amazinite)
     * Missions can now have an "on land" action that triggers in a similar manner to "on enter", except for landing on planets instead of entering systems. (@warp-core)
     * Missions can now be given an offer location of "transition", causing them to be offered the moment you transition between systems. (@warp-core)
   * Mechanics changes:
     * Ships that are overheated or heavily ionized no longer count toward the strength of their government's ships in a system, freeing up a spot for a new ship to spawn as reinforcements. (@Anarchist2)
   * NPC AI:
     * Ships that board their targets will now avoid boarding a target that is already in the process of being boarded by an ally. (@TomGoodIdea)
 * User interface:
   * Preferences and controls:
     * If the "Control ship with mouse" preference is on, the ability to send orders to your escorts using the mouse is moved from right click to middle mouse button. (@SomeTroglodyte)
     * Updated the "Reduce large graphics" preference to now have an "all" setting, reducing the resolution of all graphics in the game (aside from UI elements). Intended for use on lower-end hardware that may have trouble running the game due to low memory/VRAM. (@TomGoodIdea)
     * Added a preference to control whether the message history should be stored in the save file, allowing the message history panel to retain information after reloading the save file. This is a preference due to how it can increase the save file size. (@TomGoodIdea)
     * The game no longer disables the monitor from going to sleep or activating a screen saver by default. There is now a preference from controlling this behavior. (@Amazinite)
     * The GPU/CPU load preference has been changed to display the load in both milliseconds and percentage of a frame, which is now reactive to whether fast-forward is enabled. Additionally, the memory usage of the game is now listed, and the placement of these values can be controlled through interface data. (@TomGoodIdea)
     * The display of the CPU/GPU loads can now be toggled using a control. The default is F3. (@TomGoodIdea)
   * Interface definitions:
     * The "Additional info" section on the controls panel is now created using interface data instead of being hardcoded. (@Amazinite)
     * Various messages that were hardcoded into the engine can now be customized via game data. (@TomGoodIdea)
     * The map legends in the map missions panel are now created using interface data instead of being hardcoded. (@nickshanks)
   * QoL:
     * The jump keybind will now set a travel plan to the currently selected system on the map (or add it to the plan if shift is held), allowing you to much more easily set a route to a system without using the mouse by using the find system feature to select the system prior to hitting the jump key. (@Amazinite)
     * The trade panel on the map now has colored rings for representing how high or low the value of a commodity is in the current system, and colored arrows for representing the difference in value between two systems. (@xobes)
     * Added a scroll bar to the boarding panel when there are enough outfits to allow scrolling. (@TomGoodIdea)
     * Added a "Player Info" button to the planet panel. (@Anarchist2)
     * Mission escorts can now be selected using the escort display. (@Amazinite)
     * Clicking on an icon in the escort display that represents multiple ships now cycles your flagship's target through the list. (@Amazinite)
     * The "New Pilot" button is now replaced with a "Reload Pilot" button when going to the main menu after your pilot has died. (@warp-core)
     * The name of the planet that you are currently landed on is now displayed next to the radar at the top left corner of the screen. (@xobes)
   * Other:
     * Added a flight check error for ships that need crew in order to function but lack any bunk space. (@TomGoodIdea)
     * Rephrased the tooltips for the damage protection and reduction attributes. These attributes now display as percentages in the outfitter. (@Daeridanii1)
     * The DialogPanel class can now be given a third button with custom functionality. (@xobes)
     * The orbits mini map and map legend are now hidden on the stars map when the selected system's contents can't be viewed. (@nickshanks)
 * Performance:
   * Pathfinding results for ships are now cached, greatly improving the performance of large fleets when pathfinding. (@xobes)
   * Swizzle mask textures are no longer duplicated for multi-frame sprites if only one swizzle mask is provided, freeing up VRAM. (@warp-core)
   * If the high DPI plugin is installed, then the game will only load the 2x textures instead of loading both the 1x and 2x textures, freeing up VRAM. (@Amazinite)
   * Improved the performance of AI::DoScatter. This should result in a noticeable improvement when flying around with a large number of ships. (@Amazinite)
   * Fixed an edge case where escorts without weapons would move independently when not given orders, potentially jumping away to a different system without you. (@Amazinite)
   * Selecting a large number of escorts no longer causes extreme lag caused by high CPU usage. (@Amazinite)
   * Capture odds are now only calculated for capturable ships, preventing uncapturable ships from unnecessarily using up memory when boarded. (@Amazinite)
 * Under the hood:
   * Renamed the "line" interface element to "fill". (@TomGoodIdea)
   * Separated the Weapon and Outfit classes from one another. (@TomGoodIdea, @warp-core)
   * Cleaned up how timestamp formatting is calculated. (@TomGoodIdea)
   * Improved the detection of adaptive vsync at runtime. (@TomGoodIdea)
   * Updated a few code and data files to conform to the style guide. (@Amazinite)
   * Events are now stored in the player's save file using the name of the event instead of storing the individual changes. The result of this is that events will take up much less save file space, and updating an event will cause save files to use the updated version instead of requiring a version compatibility mission to re-trigger the event. (@Amazinite)
   * Added bounds checking to DataNode::Token. (@Amazinite)
   * ntdll is now loaded statically on Windows. (TomGoodIdea)
   * Plugins can now provide custom shaders to support the game running using OpenGL 2. (@TomGoodIdea)
   * Reformatted how logs are displayed for errors.txt. The game now supports multiple logging levels. (@TomGoodIdea)
   * Now only using freopen_s with MSVC on Windows. (@TomGoodIdea)
   * Correctly link RtlGetVersion on Win32. (@TomGoodIdea)
   * There is now a command line argument for printing the full event changes of the most recently loaded save file. (@warp-core)
   * Panel::GetUI now returns the UI by reference instead of by pointer. (@Amazinite)
   * Dialog node parsing has been moved to its own class. (@Amazinite)
   * Replaced various shared_from_this calls with weak_from_this where a shared pointer was not necessary. (@Amazinite)
   * Updated various functions in the Format class: renamed Credits to AbbreviatedNumber, combined the behavior of Decimal into Number, and created a Percentage function. (@Amazinite)
   * The DialogPanel class is now capable of validating integer and double input. (@Amazinite)
 * Documentation:
   * The bug report template now asks for the errors.txt file. (@TomGoodIdea)
   * Updated the CONTRIBUTING.md file to point to the new C++ style guide location. (@Nova1422)
   * Updated the build instructions for MacOS. (@CelestialHoney)
 * CI/CD and development environment:
   * Bumped the MacOS runners to macos-14. (@warp-core)
   * Added desktop.ini to the .gitignore. (@TomGoodIdea)
   * Updated vcpkg configurations for better compatibility with CMake 4. (@ciphell)
   * The expected character encoding is now specified in the .editorconfig. (@warp-core)
   * Enabled the alternative libflac detection method when building without vcpkg on Mac. (@bene-dictator)
   * Increased the integration test timeout from 15 seconds to 2 minutes. (@AdrianBunk)
   * Automatically choose the CMake target for GLEW. (@TomGoodIdea)
   * Added a 32-bit Windows CI job. (@TomGoodIdea)


Version 0.10.16


Version 0.10.15

Bug fixes:

Content bugs:
    -   Typo fixes. (@Anarchist2, @LixiChronikouOriou, @warp-core, @Wedge009)
    -   Removed a duplicate definition of the "Dagger (Miner)" variant. (@Anarchist2)
    -   Corrected the height of the planet description text area. (@warp-core)
    -   Added the Aegis, Ancile, and Aspis shield generators and the Quarg Drake to atrocity lists of Quarg governments. (@LixiChronikouOriou)
    -   The mission "Remnant: Expanded Horizons Quarg 2" will now only spawn one Quarg Lindwyrm, Drake, or Wardragon, instead of sometimes spawning two Drakes. (@warp-core)
    -   "Remnant: Expanded Horizons Astral job" will no longer select Beyond Patir systems as a waypoint. (@beccabunny)
-   Engine bugs:
    -   Ships that cannot land with the flagship will now be assigned to the correct planet. (@TomGoodIdea)
    -   The "Coming to a stop" and flagship overheating messages will no longer be sent excessively. (@TomGoodIdea)
    -   On Windows, files are now written in the text mode, not the binary mode, for the correct newline format. (@TomGoodIdea)
    -   Fixed a bug where carriers with docked ships would not be correctly despawned when landing. (@Anarchist2)
    -   The collection of persons is now reset when loading a save file, preventing undefined person names from permeating across save files. (@TomGoodIdea)
    -   The spaceport description will no longer appear in space after the player dies while in the spaceport panel. (@TomGoodIdea)
    -   Fixed an issue where a low priority message would not appear due to an invisible message with the same text at the end of its lifetime still in the list. (@TomGoodIdea)
    -   Fixed an error in depreciation calculations that allowed item values to fall slightly below 25% in some cases. (@Amazinite)

Game content:

New content:
    -   Added five new landable gas giants throughout the Graveyard. (@beccabunny)
    -   Added a couple of missions about the last will of a late ship captain. (@TheGiraffe3, @RisingLeaf, @bene-dictator)
    -   Added four new landable gas giants to Coalition space. (@Arachi-Lover)
    -   Added new missions to the Syndicate investment storyline. (@reticent-rem)
    -   Created a mission chain about rescuing a lost racer. (@TheGiraffe3, @Daeridanii1)
    -   Created dynamic, repeatable hovercraft racing missions on Sunracer. (@reticent-rem)
    -   Added a mission chain where the player discovers an ancient Ka'het satellite. (@beccabunny)
Mission changes:
    -   The "There Might Be Riots" mission chain can now be completed without doing the Deep Archaeology missions, and feature 25 instead of 35 Combat Drones. (@Anarchist2)
Sprites:
    -   Added various new gas giant landscapes. (@beccabunny)
    -   Fixed artifacts at the edges of some images. (@mbartlett21)
    -   Removed various unused landscape images with unspecified/incompatible copyrights. (@warp-core)
    -   Added thumbnail images for Aberrant ships. (@beccabunny)
-   Sounds:
    -   Increased the bitrate of the "explosion huge.wav" sound. (@Anarchist2)
-   Balance:
    -   The Heavy Gust becomes available shortly after the Autumn Leaf, and appears in various system and mission fleets. (@Quantumshark)
    -   Various changes to Avgi content. (@Azure3141)
Other:
    -   The variants of the Aphid, Lightning Bug, and Shield Beetle sold by the Unfettered Hai are now differentiated by subtitles in the map shipyard view. (@warp-core)
    -   Gave the Firestorm Battery a velocity override so the AI no longer overestimates its range. (@Quantumshark)

Version 0.10.12 (Feb 22, 2025)

Bug fixes:

Content bugs:
-   Typo fixes. (@imverybadatnames, @reticent-rem, @TheGiraffe3, @tibetiroka, @TomGoodIdea, @warp-core)
-   The job "Paradise Job: Wilderness Retreat" will no longer select a station as its destination. (@TheGiraffe3)
-   The "Dangerous Games" missions will now only offer from planets within 100 hyperspace links of their destinations, instead of potentially in disconnected regions. (@warp-core)
-   Fixed some log entry actions for the 'Tim the Stowaway' mission set that were malformed. (@warp-core)
-   Added a missing passenger to the "Human to Hai Space - No Contact" mission. (@TheGiraffe3)
-   Changed the description of the Tractor Beam to refer to "attractor" rather than "repulsor" technology. (@mOctave)
-   The locations for distressed ships in Remnant rescue jobs one through three are now restricted to systems connected by hyperlane or wormhole to Arculus, so the objective ships can always make it back home. (@warp-core)
-   The "Carrier (Alpha)" variant now has the correct number of bays, insated of inheriting the updated bay configuration of the base Carrier. (@Saugia)
-   Coalition ship and planets can no longer be bribed. (@Arachi-Lover)
-   Fixed an issue where the mission to transport Timothy Radrickson to Rand could appear before the player becomes aware of the stowaway aborad their ship. (@warp-core)
-   Reduced the size of the Z-3600's sprite to prevent visual impairment. (@Saugia)
Engine bugs:
-   Fixed an issue where player escorts could start jumping around independently of the flagship. (@warp-core)
-   Tooltip boxes will no longer be drawn for items without tooltip text in ship and outfit info displays. (@warp-core)
-   When determining if there are sufficient resources to fire a weapon, only the values of resources firing the weapon actually consumes will be considered. (@warp-core)
-   Exceptions thrown when copying files will now be caught, instead of crashing the game. (@TomGoodIdea)
-   Audio will now remain paused when switching from the player info to ship info panel. (@TomGoodIdea)
-   The fuel bar will no longer disappear when the player has a lot of fuel. (@warp-core)

Game content:

New content:
-   Added launch sounds and angles to bays on Avgi ships. (@Saugia)
Balance:
-   Buffed the health and mobility of the Bastion and Bulwark. (@ziproot)
    -   Bastion:
        -   Shields: 7500 -> 8600
        -   Hull: 4700 -> 5300
        -   Mass: 1210 -> 1100
        -   Drag: 16.5 -> 15.5
        -   Heat dissipation: 0.32 -> 0.34
    -   Bulwark:
        -   Shields: 7000 -> 8000
        -   Hull: 5600 -> 6500
        -   Mass: 1722 -> 1582
        -   Drag: 21 -> 20.1
        -   Heat dissipation: 0.27 -> 0.28
    -   Korath ships raiding human space now have the "frugal" personality. (@Quantumshark)
    -   Adjusted the Firelight Missile Bank. (@ravenshining)
    -   Removed "infrared tracking".
    -   Optical tracking (first stage): 0.9 -> 0.7
    -   The second stage now uses injammable "tracking" of 0.9.
    -   Lifetime (final stage): 140 -> 168
    -   Drag (final stage): 0.1 -> 0.12
    -   Homing: 4 -> 3
    -   The first stage no longer has a trigger radius.
    -   Trigger radius (final stage): 30 -> 20
    -   Blast radius: 60 -> 48
    -   Missile strength: 30 -> 33
    -   Removed "infrared tracking" from the Firestorm Battery. (@ravenshining)
    -   The "Cruiser (Jump)" variant now has four Particle Cannons instead of two Typhoon Launchers and two Sidewinder Missile Launchers. (@Saugia)
    -   Removed a "Sidewinder Missile Rack", and the 23 "Sidewinder Missiles" it provided space for, from the Lance. (@Saugia)
-   Other:
    -   Slightly changed some wording in the "Saving Ildico" mission chain. (@Arachi-Lover)
    -   Adjusted some systems in the Twilight to conform to the rest of the Ember Wastes correctly. (@Azure3141)
    -   Expanded the conversation in "Remnant: Cognizance 29" to account for the total destruction of the Korath fleet waiting in the system in the previous mission. (@warp-core)
    -   Updated "FW Syndicate Capture 1B" to account for the Aerie's two new fighter bays. (@TheGiraffe3)

User interface:

Under the hood:


Version 0.10.8 (Jun 22, 2024)

Bug fixes:

Content bugs:
  - Typo fixes. (@eebop, @Hannah-E-M, @roadrunner56, @TheGiraffe3, @tibetiroka)
  - Shortened Darkrest's description to better fit the planet description box. (@roadrunner56)
  - Replaced duplicated words with weights in phrases. (@tibetiroka)
  - The Hai festival jobs now have deadlines, as their descriptions suggested they should have had. (@ziproot)
  - Updated Korath World-ship names for Remnant jobs. (@ziproot)
  - The '"Benga" Reverse Thruster' now properly makes noise when in use. (@Saugia)
Engine bugs:
  - Fixed a crash when sorting ships without a ship selected with clang. (@warp-core)
  - Fixed a crash with non-ASCII characters passed to cctype methods with clang. (@warp-core)
  - Fixed a crash when sorting the ship list with no ships. (@warp-core)
  - Fixed issues with the player interacting with the game after death. (@tibetiroka)
  - Unicode byte order marks at the beginning of data files will no longer be tokenized. (@warp-core)
  - The flagship will no longer move through wormholes ahead of escorts when using fleet jumping. (@Koranir)
  - Fixed edge cases for the battery only flight check warning. (@nickshanks)
  - Fixed a crash when drawing cloaked ship and flagship outlines. (@tibetiroka)
  - The "flagship only" flotsam collection setting now works. (@tibetiroka)

Game content:

Mission changes:
  - The Pact Recon missions will now no longer offer immediately after each other. (@Anarchist2)
  - Reduced the pay and availability of Swiftsong jobs. (@roadrunner56)
  - In the "Pirate Duel" mission, Umbral is now a marked system instead of a waypoint, meaning it is no longer required to visit the system in order to complete the mission. (@ziproot)
Balance:
  - Reduced "relative heat damage" sources by a factor of 1.5, for consistency with the mass rebalance in v0.10.7. (@Quantumshark)
  - Reduced the difficulty of "Wanderers: Mind 6". (@TheGiraffe3)
    - Wanderer escorts:
      - +1 Tempest
    - Friendly Mereti:
      - -1 Model 128
      - +2 Model 16
    - Hostile Mereti:
      - -1 Model 128
      - -1 Model 64
      - -1 Model 32

Game mechanics:

User interface:

CI/CD and development environment:


Version 0.10.6 (Feb 17, 2024)

Bug fixes:

Content bugs:
 - Typo fixes. (@AlexBassett, @alexrovw, @bene-dictator, @fingolfin, @opusforlife2, @tibetiroka, @warp-core)
 - Gave the Gatling Turret and Javelin Turret 1 required crew each. (@Amazinite)
 - The "Gemini Shipyards" jobs now check the correct conditions. (@bene-dictator)
 - Uninhabited systems and Kaus Borealis will now correctly change governments in the course of the Free Worlds campaign. (@bene-dictator)
 - Added the "ramming" personality to the timer ship in "Sad Archie" so it behaves more like it should. (@ziproot)
Engine bugs:
 - Animated ship and planet sprites are now correctly rendered in the hail panel. (@warp-core)

Game content:

New content:
 - Expanded the descriptions of some Hai stations. (@roadrunner56)
 - Some planet descriptions will now include references to abandoned Navy bases as they are captured in Free Worlds Checkmate. (@bene-dictator)
 - Added Merchant hails about dumping cargo to distract pirates. (@tibetiroka)
Balance:
 - Gave Dreadnought back their fourth Torpedo Launcher. (@warp-core)
 - And the 30 extra torpedoes this provides space for. They were previously removed when the launchers were made larger.
 - Replaced the LP144a battery with an LP072a battery to make space.
 - Made the Lasher Pistol more defensive and less offensive. (@Amazinite)
      - Capture attack: 2.6 -> 1.1
      - Capture defense: 1.4 -> 2.8
Other:
- Reduced the spawn rate of Astral Cetaceans and Embersylphs, and removed the large Embersylphs. (@Saugia)
- Added the "lingering" personality to the "Gegno Old" fleets, containing intra-system Protoliths. (@Saugia)

User interface:

Under the hood:

CI/CD and development environment: