Changes for page Breaking Changes
Last modified by Michael Baumgardt on 2026/04/17 12:03
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Objects (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -25,19 +25,23 @@ 25 25 )))|=((( 26 26 Summary 27 27 ))) 28 +|(% colspan="3" %)(% colspan="3" %) 29 +((( 30 +== 3.00 == 31 +))) 28 28 |(% colspan="1" %)(% colspan="1" %) 29 29 ((( 30 - UIcore34 +Scripts 31 31 )))|(% colspan="1" %)(% colspan="1" %) 32 32 ((( 33 33 3.0 Beta 1 34 34 )))|(% colspan="1" %)(% colspan="1" %) 35 35 ((( 36 - **Lua:**GetMiniGameCursorPosition()removed40 +Script action **<add_actor_to_room/> **attribute **'room'** renamed to **'object'** 37 37 ))) 38 38 |(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %) 39 39 ((( 40 - GetMiniGameCursorPosition()wasaleftoverfromthe XR era andneversupposedtobe shippedwithX4. Thefunctionpracticallyalways returned 0and hencewe don't expecttheremovalof thisobsolete functioncausinganyactualmodtobreak.44 +Due to engine changes, script action <add_actor_to_room/> has had the attribute 'room' changed to 'object', which is more accurate. Most likely requires a 'position' if a slot is not provided. 41 41 ))) 42 42 |(% colspan="1" %)(% colspan="1" %) 43 43 ((( ... ... @@ -47,12 +47,11 @@ 47 47 3.0 Beta 1 48 48 )))|(% colspan="1" %)(% colspan="1" %) 49 49 ((( 50 - $ware.illegalupdated54 +Script action **<set_doors_locked/>** attribute **'group'** changed 51 51 ))) 52 52 |(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %) 53 53 ((( 54 -$ware.illegal used to return true if the specified ware has the 'illegal' tag which is no longer used. 55 -\\It now returns true if $ware is illegal to any faction in the game. 58 +//The 'group' attribute of <set_doors_locked/> can no longer be a list. It must be a single tag value. Previously, a list containing one tag was accepted, which was redundant.// 56 56 ))) 57 57 |(% colspan="1" %)(% colspan="1" %) 58 58 ((( ... ... @@ -62,13 +62,11 @@ 62 62 3.0 Beta 1 63 63 )))|(% colspan="1" %)(% colspan="1" %) 64 64 ((( 65 - 'checkoperational'filter behaviourchanged68 +Script conditions **<event_hack_*/>** and **<event_controlpanel_hack_*/>** removed 66 66 ))) 67 67 |(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %) 68 68 ((( 69 -//Actions and conditions which use the 'checkoperational' filter now behave differently. Instead of changing how 'class' and 'exactclass' behave, checkoperational == true adds an additional filter for the components being of state operational, equivalent to state="componentstate.operational". This is implicitly enabled in action elements (e.g. <find_.../>) or condition elements (e.g. <count_...>), meaning that find_ship will only find operational ships. Using such actions/conditions with checkoperational="false" will include non-operational components such as wrecked and constructions. Existing uses may find that results now exclude non-operational components.// 70 - 71 -//Sub nodes such as match_child will have checkoperational default to false. Existing uses may find that results now include non-operational components.// 72 +//These events were never triggered, with the exception of <event_hack_started/> on the player entity for instant control panel hacks. Use <event_player_hacked_object> instead.// 72 72 ))) 73 73 |(% colspan="1" %)(% colspan="1" %) 74 74 ((( ... ... @@ -78,6 +78,102 @@ 78 78 3.0 Beta 1 79 79 )))|(% colspan="1" %)(% colspan="1" %) 80 80 ((( 82 +Script actions **<set_hack_target/>** and **<abort_hack/>** removed 83 +))) 84 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %) 85 +((( 86 +//These actions had no effect and were removed.// 87 +))) 88 +|(% colspan="1" %)(% colspan="1" %) 89 +((( 90 +Scripts 91 +)))|(% colspan="1" %)(% colspan="1" %) 92 +((( 93 +3.0 Beta 1 94 +)))|(% colspan="1" %)(% colspan="1" %) 95 +((( 96 +**<setup_conversation_minigame/>** script action removed 97 +))) 98 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %) 99 +((( 100 +//The script action was a leftover from the XR era and was never supported in X4 and couldn't be used in a meaningful way. It was therefore decided to better drop it altogether as it's not expected having been used by any mods.// 101 +))) 102 +|(% colspan="1" %)(% colspan="1" %) 103 +((( 104 +Scripts 105 +)))|(% colspan="1" %)(% colspan="1" %) 106 +((( 107 +3.0 Beta 1 108 +)))|(% colspan="1" %)(% colspan="1" %) 109 +((( 110 +<add_player_choice_*> **confidence** attribute removed 111 +))) 112 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %) 113 +((( 114 +//The default confidence of player options is another leftover from the XR era and had no effect in X4.// 115 +))) 116 +|(% colspan="1" %)(% colspan="1" %) 117 +((( 118 +Scripts 119 +)))|(% colspan="1" %)(% colspan="1" %) 120 +((( 121 +3.0 Beta 1 122 +)))|(% colspan="1" %)(% colspan="1" %) 123 +((( 124 +**<hack_via_control_panel/>** script action removed 125 +))) 126 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %) 127 +((( 128 +//Unused script action <hack_via_control_panel/> was removed.// 129 +))) 130 +|(% colspan="1" %)(% colspan="1" %) 131 +((( 132 +UI core 133 +)))|(% colspan="1" %)(% colspan="1" %) 134 +((( 135 +3.0 Beta 1 136 +)))|(% colspan="1" %)(% colspan="1" %) 137 +((( 138 +**Lua: **GetMiniGameCursorPosition() removed 139 +))) 140 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %) 141 +((( 142 +//GetMiniGameCursorPosition() was a left over from the XR era and never supposed to be shipped with X4. The function practically always returned 0 and hence we don't expect the removal of this obsolete function causing any actual mod to break.// 143 +))) 144 +|((( 145 +UI core 146 +)))|((( 147 +3.0 Beta 1 148 +)))|((( 149 +**FFI: **GetLocalizedInteractiveNotificationKey can return icon placeholders 150 +))) 151 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %) 152 +((( 153 +//In 3.0 Beta 1 we added support to display icons for keyboard bindings, if an icon is available for the specified keys. This results in GetLocalizedInteractiveNotificationKey() potentially returning a different text now if such an icon is assigned to the mapped key/button.// 154 +))) 155 +|(% colspan="1" %)(% colspan="1" %) 156 +((( 157 +Scripts 158 +)))|(% colspan="1" %)(% colspan="1" %) 159 +((( 160 +3.0 Beta 1 161 +)))|(% colspan="1" %)(% colspan="1" %) 162 +((( 163 +**$ware.illegal** updated 164 +))) 165 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %) 166 +((( 167 +//$ware.illegal used to return true if the specified ware has the 'illegal' tag which is no longer used.// 168 +//It now returns true if $ware is illegal to any faction in the game.// 169 +))) 170 +|(% colspan="1" %)(% colspan="1" %) 171 +((( 172 +Scripts 173 +)))|(% colspan="1" %)(% colspan="1" %) 174 +((( 175 +3.0 Beta 1 176 +)))|(% colspan="1" %)(% colspan="1" %) 177 +((( 81 81 MD script **RML_Flight_Along_Path** removed 82 82 ))) 83 83 |(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %) ... ... @@ -86,6 +86,53 @@ 86 86 ))) 87 87 |(% colspan="1" %)(% colspan="1" %) 88 88 ((( 186 +Scripts 187 +)))|(% colspan="1" %)(% colspan="1" %) 188 +((( 189 +3.0 Beta 1 190 +)))|(% colspan="1" %)(% colspan="1" %) 191 +((( 192 +parameters of **<event_venture_mission_completed/>** changed 193 +))) 194 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %) 195 +((( 196 +//old params: param = venture details, param2 = ships involved, param3 = duration// 197 +//new params: param = venture detail list: [mission name, mission type], param2 = list of ships involved, param3 = duration// 198 +))) 199 +|(% colspan="3" %)(% colspan="3" %) 200 +((( 201 +== 2.60 == 202 +))) 203 +|((( 204 +Scripts 205 +)))|((( 206 +2.60 Beta 1 207 +)))|((( 208 +'**checkoperational**' filter behaviour changed 209 +))) 210 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %) 211 +((( 212 +//Actions and conditions which use the 'checkoperational' filter now behave differently. Instead of changing how 'class' and 'exactclass' behave, checkoperational == true adds an additional filter for the components being of state operational, equivalent to state="componentstate.operational". This is implicitly enabled in action elements (e.g. <find_.../>) or condition elements (e.g. <count_...>), meaning that find_ship will only find operational ships. Using such actions/conditions with checkoperational="false" will include non-operational components such as wrecked and constructions. Existing uses may find that results now exclude non-operational components.// 213 + 214 +//Sub nodes such as match_child will have checkoperational default to false. Existing uses may find that results now include non-operational components.// 215 +))) 216 +|((( 217 +Scripts 218 +)))|((( 219 +2.60 Beta 1 220 +)))|((( 221 +$container.**supplyresources** behavior changed 222 +))) 223 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %) 224 +((( 225 +//The script keyword $container.supplyresources now includes reserved wares.// 226 +))) 227 +|(% colspan="3" %)(% colspan="3" %) 228 +((( 229 +== 2.20 == 230 +))) 231 +|(% colspan="1" %)(% colspan="1" %) 232 +((( 89 89 UI core 90 90 )))|(% colspan="1" %)(% colspan="1" %) 91 91 ((( ... ... @@ -116,6 +116,10 @@ 116 116 ((( 117 117 //The underlying behaviour remains the same in that it involves the buildprocessor, not the buildmodule. The attribute name has simply been corrected.// 118 118 ))) 263 +|(% colspan="3" %)(% colspan="3" %) 264 +((( 265 +== 2.00 == 266 +))) 119 119 |(% colspan="1" %)(% colspan="1" %) 120 120 ((( 121 121 Scripts ... ... @@ -262,6 +262,10 @@ 262 262 ((( 263 263 //Changed return value type to const char* to better identify failure reasons in Lua script.// 264 264 ))) 413 +|(% colspan="3" %)(% colspan="3" %) 414 +((( 415 +== 1.50 == 416 +))) 265 265 |((( 266 266 UI extensions 267 267 )))|((( ... ... @@ -327,6 +327,10 @@ 327 327 ((( 328 328 (% style="color: rgb(0,0,0);" %)//CancelConstruction() now returns if the cancellation was successful. // 329 329 ))) 482 +|(% colspan="3" %)(% colspan="3" %) 483 +((( 484 +== 1.32 == 485 +))) 330 330 |((( 331 331 UI extensions 332 332 )))|((( ... ... @@ -338,6 +338,10 @@ 338 338 ((( 339 339 //Instead of "nextdestname", use the properties "destination" or "destinationsector" to retrieve a destination component, then retrieve its "name" property.// 340 340 ))) 497 +|(% colspan="3" %)(% colspan="3" %) 498 +((( 499 +== 1.20 == 500 +))) 341 341 |((( 342 342 UI extensions 343 343 )))|(((
- Confluence.Code.ConfluencePageClass[0]
-
- id
-
... ... @@ -1,1 +1,1 @@ 1 -834 607331 +86835243 - url
-
... ... @@ -1,1 +1,1 @@ 1 -https://www.egosoft.com:8444/confluence/wiki/spaces/X4WIKI/pages/834 60733/Breaking Changes1 +https://www.egosoft.com:8444/confluence/wiki/spaces/X4WIKI/pages/86835243/Breaking Changes