Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current Restore this Version View Page History

« Previous Version 2 Next »

Introduction

Our goal is to keep breaking changes between any given version of X4 to an absolute minimum. In some cases, however, we have had to change things which break scripts/mods which were written for older versions.
The following table provides an overview about all breaking changes. This should help you to make any necessary changes to restore compatibility of older mods with new versions of X4.

Icon

The list of breaking changes does NOT cover changes in the provided/shipped Lua scripts (for instance the ones located under ui/addons/XXX or ui/core/Lua. These scripts can change anytime without explicit notice. If you hook into one of these scripts or provide replacements for these, please check the script for possible breaking changes yourself.

Further note that the list provides information about breaking changes which are in the pipeline of being released. This is meant merely as an informational heads up. Neither do mistake this as an announcement of that version becoming available soon nor take it as a fact that such a change will go live. Any information provided for not yet released versions can change (and even be removed) prior to such version having seen the light of day.

UI modding considered unstable

Icon

Please note that UI modding must be considered unstable in the current version. While we are working hard to get the UI modding integration into a stable state, we might have to introduce larger backwards incompatibilities in the following patches. This means that you might have to modify any mod using UI modding capabilities to a larger extend to keep it compatible with certain patches. Still, we are doing our best not to unnecessarily break things for modders and certainly will announce such changes on this page here.

 

Please note that issues introduced during the beta phase might not be explicitly mentioned as a breaking change, if things would only be broken in-between two beta versions. While we still aim to document any (potential) breaking change here, there might be circumstances for which we divert from that procedure (especially in case of minor issues introduced only in-between beta releases).

Breaking Changes

TypeVersionSummary
UI extensions2.0 Beta 1GetUpgradeSlotCurrentComponent() works on non-operationals
Before 2.0 Beta 1 using GetUpgradeSlotCurrentComponent() only performed on operational objects (i.e. not wrecked objects or objects under construction). Since this is inconsistent with the rest of the UI functions, this was considered a bug and fixed in 2.0 Beta 1. If you require the old behavior, use the FFI function: IsComponentOperational() to check the passed object's state before making the call.