Change log: (chronologically ordered)
Hidden Text: Expand for change log Show Big Feature Highlights - Use new in-game options, which allows users to set all options in-game instead of via flag. To access this go to the Options screen in game and follow the instructions to press F3 to access the new menu. To disable the new in-game options and allow command-line options to take precedence, use -no_ingame_options.
- Completed SCPUI with access to all menus and screens, including multiplayer. SCPUI allows mods to create fully customized UIs, such as those used in BtA2.
- Add 'Flight Cursor' flying style option, which allows players to change how the mouse or other input is used for flying (ie Freelance style movement vs traditional FS mouse movement) This option is available to change via the new in-game options.
- Animation Drivers for Cockpits has been added, which allows modders to make moving submodels in a cockpit model.
Game- Make Shockwaves in-game option force multi-value selection.
- Fixes Lab Rendering when Zooming
- Add 'Flight Cursor' flying style option
- Fx incorrect processing of keys during ESC popup
- Better stats handling when switching or resetting campaigns
- Deprecate some commandlines and make some options not require restart
- Fix screen shudder option issue
- Allow player-specific options even when using In-Game Options
- In-game options respect mods
- Fix option manager importance
- properly distinguish between adjusting voice and effects volume
- Cockpit FoV option
- Mission goal cheat fix
- Fix retail options not saving
- Fix CTD with HUD Preset Switching
- Retail in-game options
- Animation
- Animation Drivers for Cockpits
- Fix an issue with animation directions
- Controls
- Allow targeting subsystems on already targeted ship under reticule
- Save current preset name and use as default when saving new preset name
Graphics- Default post processing to on because so many things require it
- Adds conditional impact functionality.
- Prevent SCPUI flicker on Win11
- Fix Framebuffer Effects
- Fix for 'decloaking' effect
- Fix Transparent Cockpits
- Default framebuffer effects to off
- Add runtime flag to split up the main render shader
- Improve Volumetrics Performance
- Stop constantly rechecking the options value for deferred lighting
- Interpolate particle spawning positions for moving spawner objects
- improve model texture parsing
- Fix Insignia Checkbox in the Lab
- Created per-weapon field for laser min pixel size.
- Adds muzzle effect functionality.
- Laser bolt offset
- Make headon transition behavior consistent between laser and glow bitmaps
- Fix edge case in MSAA shader
- Fix beam particle velocity
- Allow replacement of skybox textures
- add support for decompression of DDS textures
HUD- Assign hud in ships.tbl
- Remove some int3s from offscreen indicator drawing
- Fix renderLeadCurrentTarget
- fix a minor bug with directive marking
- Don't kill paused messages
- Fix DRADIS blips
FRED/QTFRED- set the modified flag in the Voice Acting Manager
- Fix fade icons not matching parent
- Fix: Always check for nullptrs and make red-alert respect cur_waves from last mission
- Fix brown asteroid being an immortal member of the asteroids kingdom
- implement don't-change-position and don't-change-orientation
- add option in FRED to lock objects from being edited
- Respect tabled delay for arrival and backup messages
- Fix `short read` error with red alert csg file reading
- make sure 'tactical' variants of disable and disarm are allowed
- Arrival/Departure Paths Dialog
- Follow-up to Unified Scanning
- Fix "missing" command brief data
- add extra ways to modify background elements in missions
- Fix crash when right-clicking on a container modifier
- check for potential issues in FRED missions
- Fred autorecover
- make initialization consistent among FSO, FRED, and qtFRED
- add 'In back of ship' arrival location
- QTFred Loadout Editor
- speed up FRED reloading with this one weird trick
- add a new check to the Voice Acting Manager
- add skybox alpha, and add scripted functions for alpha and orientation
- Properly validate mission custom data keys
- fix "this ship name is already in use" bug
SEXPs- Upgraded Asteroid Field SEXPs
- Add a has-time-elapsed-msecs SEXP
- Adds Voluemtrics Toggle SEXP
- Friendly fire control flags and SEXP
- Add bad-rearm-time sexp
- add percent-ships-scanned
- add is-species SEXP operator
- make is-in-mission work for wings
- enhance lock-perspective to also lock slew mode
- Clarify some SEXP operator documentation
- add for-subsystems
- don't short-circuit eval_sexp on any nodes in a when-argument tree
- Add waypoints-no-formation flag
- hide key-reset
- improve set-support-ship description
- allow boolean and numeric scripted SEXPs to return special values
- Update Settings for movie subtitles
- add flag to not show callsigns in escort list
- fix bad node identification for certain SEXP errors
- adjust ship registry checks to accommodate support ships
- fix help descriptions for string-greater-than and string-less-than
- fix time-to-goal edge cases
Localization- Fix Settings Localization IDs
Modding- Unlimited Asteroid/Debris Field Types & Subtypes
- Scanning is chaos, let's make it sane
- Add `$player orders afterburn hard` flag
- Add AI Flag to `align to target when guarding stationary ship`
- Add 'alignment' for poofs
- allow game_settings options to be read in any order
- Allow explicitly empty sounds
- allow a ship class's type to be set more than once
- Improve Mainhall Button Responsiveness
- Allow finer control of particle rotation randomization
- Add 'Circ' default curves
- Allow skipping using retail mainhall defaults
- add ship flag to disable message scrambling when EMP is active
- Custom Strings for ships and weapons
- Allow defining custom message types
- Add flag for debris respecting big damage
- Generic random distributions, including curve-based
- Accessibility IFF colors
- Adds warning if cond-impact armor type not found.
- Add offset for tabled particle effects
- fix fighter beam FOV calculation
- Accept "color" and "colour" in game_settings.tbl
- Beam slash curves
- Per weapon auto convergence
- Ensure guards ignore protected attackers
- Allow for more field of fire cooldown shenanigans
- Expose Minimum LoS Detection Radius
- Make laser glow scaling configurable.
- Makes random life factor of children configurable.
- Sets type 5 end point rand to use correct values.
- Make the $Shots parameter work for beams.
- add "override submodel impact" subsystem flag
Models- Have TMAP chunks report >25 verts polygon error as well
- Model range fix
- Enhancements for submodel collisions
- Fix broken collision pair caching
Multiplayer- fix data length bug in PXO hole punch packet
- add support for PXO's UDP hole punch feature
- fix crash when chatbox message is all whitespace
- Convert multi team chat to use a struct/list setup
- Fix multi option virtvars so they can be read without being set
- Make Active_games_head an SCP_list
- Scripting
- Return false if skip to string can't find the string
- use functions for getting swarm info and corkscrew info
- Fix WeaponClass.SwarmInfo
- Grant access to shipclass shield hitpoints value
- Increase Lua safety
- Add lua function to validate a string as a valid IP
- add scripting support for wing wave min/max delay
- safety check for lua_tostring()
- add method for determining whether the HUD is hi-res
- Print in game options data to scripting output files
- Allow accepting a pilot without changing gamestate
- Expose shockwave damage
- add Team virtvar to parse objects
- Add scripted model 'lightning' arcs
- On loading complete hook
- connect ship and parsed ship in Lua API
- isValid refactor
- Allow lua to lock/unlock cutscenes
- cover all stages of ship warping in the Lua API
- Expose method to kill all current voice messages
- add API for glow point banks
- Exposes the New Flight Cursor Mode to Scripting and Fixed Aiming Setting
- Expose Impact Damage Type to Scripting
- more electrical arc API features
- Allow overriding low-level keypresses
- add createRandomOrientation
- Expose Collision Rotation Factor to Players
- Skip some more retail UI stuff with API
- Fix message api out of bounds check
- Account for scripting when dealing with velocity
- add getStringHeight and getStringSize
- add a HUD virtvar for contrast
- Allow ba.xstr to lookup from strings.tbl
- Ingame prejoin API
- Team Loadout API for SCPUI
- Expose parse skip_to_string
- Misc Methods for SCPUI Multi
- Multi general api
- Multi dogfight debrief API
- API for the Multi Pause UI
- Multi sync API
- Multi Start Game UI API
- API to get the PXO urls
- Multi Join API
- Scpui multi pxo api
- Basic implementation of some audio options in-game
- Don't init the debrief ui in API mode
- Add opf custom string as a lua sexp return type
- Lua method to get the number of object sounds
- allow invalid arguments to be nil
Technical- Fix overlappig XSTRs
- change atan2_safe to atan2
- properly handle game sounds with numeric IDs
- remove bogus ship types from objecttypes.tbl
- properly initialize cargo titles
- Clarify options popup message text
- add preliminary support for Windows ARM64
- Fix deferred lighting Option
- fix sound initialization
- Fix Briefing Icons at 4K in SCPUI
- update detection of save version
- fix deletion of looping sounds
- improve sounds.tbl index ordering
- Fix unreliable Sounds index retrieval
- bump version to 24.2
- Reduce absolute volume threshold
- fix template warnings when compiling 2d.cpp
- Fixes CTD with new Friendly Fire Feature
- Switch options manager from signaling empty keys with exceptions to use optional<>
- Slightly clean up RPC API
- Fix a sound crash
- Adds consts to parameters for a couple laser rendering functions.
- Fix SDL2 pkg-config name
- update to newest prebuilt libs
- Fix ingame options init bugs
- Generalize linear interpolation
- limit debug log spam from file shadows
- use C++ casts for floating.h and floating.cpp
- make mission log dynamic
- Prevent printing a warning every frame
- replace pointers with indexes in object_h
- utility functions for counting and searching
- Split up debris and asteroid types
- Fix SSM strikes with a variable count.
- Assorted beam fixes
- bitstring poofs
- convert model_h and submodel_h to use indexes
- Use uniform random vector for createRandomVector
- Move Ship Editor Files And Coverity Clean-up
- Refactor replacement texture to a modelinstance parameter
- Better rand vec for createRandomorientation
- add "cloaked" to list of flags
- fix issues with get_text() and set_text() for INPUTBOX
- refine process for capping speed due to physics whack/shock/collide
- Changes particle effect functions to take consts.
- Update `Align to target when guarding still`
- Do not unload debrief bitmaps in API mode
- allow restriction to vanilla time compression range
- patch hud_support_find_closest
- call set_modified() when cmd_brief data has changed
- make fireball types dynamic
- convert arrival/departure locations to enum classes
- fix checkVisibility
- fix deprecated/removed code in cutscene ffmpeg
- fix fixed-missile-detonation
- update Fix_ai_path_order_bug for new waypoint options
- Fix coverity time t issues
- Coverity: Change many auto calls to const auto& to avoid unnecessary copies.
- add weapon preloader
- add ShipBSubmodel to ship collisions
- Handle container data nodes correctly with eval_num()
- clean up and update macOS bundle info
- make several miscellaneous timestamps type-safe
- Change special IFF color `#define`s into `extern int`s.
- Code to check if a medal is rank or badge
Deprecations:None
Deprecations are a mechanism in FSO where a certain feature or aspect of the engine has changed or is no longer supported. Since this would normally break existing mods, we have the mod table feature "
$Target Version:" with which a mod can specify what version of FSO it was developed with. Any features listed under Deprecations will be removed or changed when the target version of a mod is at least the version released in this post.
Previous 24.0.2 Release ThreadLaunchers, if you don't have one already:
All platforms: For every day use, we recommend
Knossos.NET, an integrated solution for downloading and launching mods.
Hidden Text: Alternative Launchers Show Windows (32/64-bit)Compiled using GitHub Actions on Windows Server 2019 (10.0.17763), Visual Studio Enterprise 201964-bit: fs2_open_24_2_0-builds-x64-SSE2.zip32-bit: fs2_open_24_2_0-builds-Win32-SSE2.zipThis one is based on the SSE2 Optimizations from the MSVC Compiler.Hidden Text: Alternative builds Show Linux 64-bitCompiled with Ubuntu 16.04 LTS 64-bit, GCC 5fs2_open_24_2_0-builds-Linux.tar.gzThese builds use a mechanism called
AppImage which should allow these builds to run on most Linux distributions. However, we recommend that you compile your own builds which will result in less issues.
Alternatively, if there is a package in your software repository then you should use that. If you are the maintainer of such a package for a distribution then let us know and we will include that here.
macOSmacOS 10.9+Intel (64-bit): fs2_open_24_2_0-builds-Mac-x86_64.tar.gzApple Silicon: fs2_open_24_2_0-builds-Mac-arm64.tar.gzThese builds are not signed and so by default will fail to launch. To run them simply right-click on the app, click open, then click open again on the security confirmation dialog. You should only have to do this once for each app.
If running the game through Knossos or Knossos.NET this step should not be necessary.
NOTE: macOS builds currently have limited support and may exhibit issues not present on other platforms.Hidden Text: TrackIR Users Show Important!!An external DLL is required for FSO to use TrackIR functions. The following DLL is simply unpacked in to your main FreeSpace2 root dir.
TrackIR is only supported on Windows.
TrackIR SCP DLL (
Mirror) (
Mirror)
Known issues: