Modding, Mission Design, and Coding > FS2 Open Coding - The Source Code Project (SCP)

Release: 21.4.0


Change log: (chronologically ordered)
Bugfixes and behavior changes: Check these first if something breaks (most of these changes can be reverted / disabled).

* changed ship turnrate when following waypoints to fix a bug introduced in 20.2
* Ai_aims_from_center flag fixed (the flag didn't actually affect aiming
* fixed collision checks involving accelerating weapons (the check happened to late potentially missing collisions)
* fixed a bug where full shields were occasionally pierced (you'll have to enable $fixed ship-weapon collisions: in ai_profiles.tbl or set your target version to 21.4 to get the new behavior because this fix might break mission balance)
* fixed APNG misc mainhall animations (the engine only used one random animation per group instead of picking a new animation for each loop)
* fixed an assertion when exiting missions through scripting
* fixed scripting documentation to correctly display placeholders like <‚Äčargument‚Äč>
* negative  $Hull Repair Rate can now kill the player if their health drops below 0 due to it
* fixed +Attenuation: for beams (the previous implementation didn't have the intended effect and often didn't change the damage at all)
* fixed single missions in the tech room becoming invisible if their title was translated
* fixed memory leak in F3 lab
* fixed AI multilock aiming; the AI now has the same restrictions as the player
* fixed hang on debug launch if a quotation mark in a string list was missing
* fixed invalid memory access (possible crash) for model point shields with a single quadrant
* restricted briefing icon override to ships and added $Custom briefing icons always override standard icons: to game_settings.tbl which reverts this change #3565 and #3576
* fixed subsystem debris: the engine will no longer use the specified generic debris model for destroyed subsystems since the model is usually intended to be used for destroyed ships
* support user names that contain non-ASCII characters by forcing the engine in portable mode
* fixed assert when the weapon None was selected as secondary weapon in FRED
* fixed variable replacement in briefings and debriefings for stages that modify variables in their conditions
* increased XSTR ID limit from 4 digits to 7 digits
* fixed crash caused by orphan weapons
* fixed culling for homing primaries (this used to break homing lasers)
* fixed AI targeting itself when hit by EMP
* fixed $Max Missiles Locked on Player: to only apply to the player
* performance improvements: (properly cull debris, improve matrix multiplication, reduce script overhead caused by unused script hooks, improve motion debris rendering)
Visual Changes

* glowpoint depth removed (the depth made it possible to position the glowpoint above the hull which looked awkward)
* fixed shadows in briefing stages
* improved nebula poof rendering
* added in-game options menu options for lightshafts and bloom
* added option to disable reflect maps in the lab
* added self-shadows for cockpits
New Table Settings

* added $Homing Auto-Target Method: to weapons which changes heatseekers to target a random enemy instead of the closest
* added the no collide flag for weapons which allows a modder to disable collision for specific weapons
* added ai_profiles.tbl flag $AI secondary range awareness: which can be set to aware to change AI behavior to only select secondary weapons that are in range of the AI's target
* implement $Substitute: for beams
* implemented type 5 beams
* added ai_profiles.tbl flag $no shield damage from ship collisions: which causes ship-ship collisions to cause hull damage instead of shield damage to the heavier ship
* added +Weapon Optimum Range: for weapons which the AI will attempt to maintain while attacking (this makes it possible to tell the AI to stick close to their target or snipe from afar)
* added ballistic beams
* added +Shield Regen Hit Delay: to ships.tbl which specifies the delay after a hit before which the shield starts regenerating
* added num firepoints for burst shots burst flag for weapons which sets the amount of shots per burst to the number of firepoints used to fire the weapon
* added game_settings.tbl setting $Don't pre-empt training message voice: which forces the game to finish the training message before it plays further messages (before, new messages would interrupt training messages)
* added $Chase View Offset: and $Chase View Rigidity: to ships.tbl which allow modders to tweak the chase view for each ship
* added weapon flag heals which will cause the weapon to heal its target instead of dealing damage
* added AmbientSnd for weapons which is emitted from the weapon itself as opposed to InFlightSnd which is played as a HUD sound
* added volume effect type for particle effects which spawns particles in a spherical volume (further tweaks possible through options)
* added $Shadow Cascade Distances: to game_settings.tbl
Lua Changes

* added Lua functions to control sounds assigned to objects (assignSound, removeSoundByIndex and removeSound)
* added Lua function maybePlayCutscene to start cutscenes
* added new script options for sounds: OS_PLAY_ON_PLAYER (allows persistent sounds to play on the player's ship) and OS_LOOPING_DISABLED (sound plays only once even if you don't remove it later)
* added Lua function setVolume which allows scripts to change the volume of an audio stream
FRED Changes

* added keyboard shortcut (Ctrl+Shift+S) for "Save As" in FRED
* added Draw outlines on selected ships option in FRED
* fixed handling arbitrary numbers of nebula poofs in FRED #3585 and #3584
* add turret info to FRED's 3D view
* fixed the "add data" menu item in FRED's SEXP editor
SEXP Changes

* added time-to-goal SEXP which returns the seconds a ship will take to reach its goal
* added is-language SEXP which checks whether the game is currently running in the given language
* added SEXP containers more details

* script-eval has been deprecated in favor of script-eval-block
* renamed hud-set-retail-gauge-active to hud-set-builtin-gauge-active

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. The features listed above will be removed or changed when the target version of a mod is at least the version released in this post.

Previous 21.0 Release Thread

Launchers, if you don't have one already:
All platforms: For every day use, we recommend Knossos, an integrated solution for downloading and launching mods.

Hidden Text: Alternative Launchers • ShowCross-platform: wxLauncher 0.12.x Test Build (ongoing project for a unified launcher, you should upgrade to the latest RC/test build if you have not yet)
Important: For best compatibility with FSO 3.8 and later you should use at least wxLauncher 0.12.

Windows:  Launcher 5.5g (Mirror) (Mirror) Not compatible with Windows 8+, use wxLauncher above
OS X:  Soulstorm's OS X Launcher 3.0
Linux:  YAL or by hand or whatever you can figure out.
Windows (32/64-bit)
Compiled using GitHub Actions on Windows Server 2019 (10.0.17763), Visual Studio Enterprise 2019


This one is based on the SSE2 Optimizations from the MSVC Compiler.

Hidden Text: Alternative builds • Show
64-bit AVX:
This one is based on the AVX Optimizations from the MSVC Compiler (fastest build if your CPU supports AVX instructions).

32-bit AVX:
This one is based on the AVX Optimizations from the MSVC Compiler.

What are those SSE, SSE2 and AVX builds I keep seeing everywhere?
Your answer is in this topic.
Don't want to deal with that? Use Knossos and it will download the best build specifically for your PC!

Linux 64-bit
Compiled with Ubuntu 16.04 LTS 64-bit, GCC 5

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

Not available We recently lost access to our Mac CI environment which we usually used for compiling these builds so for the time being, there will be no builds for this OS.

Hidden Text: TrackIR Users • ShowImportant!!
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:

* Github issues and pending pull requests
* See the list of Fix for next release bugs - mark a bug as an elevated priority (high, urgent, immediate) to get it included in that filter.

This cycle was delayed by at least a month and took another month to complete.  Attributing factors were thought to be the unsually busy summer months coupled with exhausting heat.

Here is the 21.4.0 milestone list, which shows both PR's and issue cards that were addressed/assigned to this release.

Approximately 20 PR's related to bugs were addressed, according to the Bug Triage project.

Since warmachine is slated to release soon, and has found at least one high-priority bug that doesn't have a feasible workaround, a point release cycle is planned to be put into action.   This particular point release will be hotfix style and will run concurrent to normal operations.  Bugfixes from master branch will be merged into the 21.4.1 branch (name tbd) while the master branch is allowed to have feature PR's merged.

Point releases are a new operation and this run is something of a trial for the "hotfix" style and is triggered by the existance of a high-priority bug that breaks an in-dev mod from progressing or a high-priority bug that breaks an existing published mod.  There is also the mid-release style which are triggered on a time schedule.  Please check out the point release discussion for more details, and provide suggestions and feedback if desired.


[0] Message Index

Go to full version