Changes for page Breaking Changes

Last modified by Michael Baumgardt on 2026/04/17 12:03

From version 64.1
edited by florian
on 2020/05/04 10:53
Change comment: There is no comment for this version
To version 69.1
edited by owen
on 2020/10/19 17:55
Change comment: added change of location for requiresconstructionvessel recycling parameter

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -xwiki:XWiki.florian
1 +xwiki:XWiki.owen
Content
... ... @@ -24,9 +24,47 @@
24 24  Version
25 25  )))|=(((
26 26  Summary
27 +)))|=(% colspan="1" %)(% colspan="1" %)
28 +(((
29 +
27 27  )))
28 -|(% colspan="3" %)(% colspan="3" %)
31 +|(% colspan="4" %)(% colspan="4" %)
29 29  (((
33 +== 4.00 ==
34 +)))
35 +|(((
36 +Parameters
37 +)))|(((
38 +4.00 Beta 1
39 +)))|(((
40 +**requiresconstructionvessel** parameter moved
41 +)))|(((
42 +
43 +)))
44 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
45 +(((
46 +//The 'requiresconstructionvessel' attribute has been moved from the 'recycling' node itself, to the new 'station' subnode.//
47 +)))
48 +|(% colspan="4" %)(% colspan="4" %)
49 +(((
50 +== 3.30 ==
51 +)))
52 +|(((
53 +UI extensions
54 +)))|(((
55 +3.30 Beta 3
56 +)))|(((
57 +**FFI: **Removed** (% style="color: rgb(0,0,0);" %)GetMissionLimit() (%%)**(% style="color: rgb(0,0,0);" %)and** **(% style="color: rgb(0, 0, 0); color: rgb(0, 0, 0)" %)**IsMissionLimit**(%%)**Enabled()**
58 +)))|(% colspan="1" %)(% colspan="1" %)
59 +(((
60 +
61 +)))
62 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
63 +(((
64 +//These mission limit-related functions (added in 3.30 Beta 1 and 2) are replaced with FFI (% style="color: rgb(0,0,0);" %)IsMissionLimit(%%)Reach(% style="color: rgb(0,0,0);" %)ed()//
65 +)))
66 +|(% colspan="4" %)(% colspan="4" %)
67 +(((
30 30  == 3.20 ==
31 31  )))
32 32  |(((
... ... @@ -35,13 +35,33 @@
35 35  3.20 Beta 1
36 36  )))|(((
37 37  Parameters of **<event_player_attacked_object/>** and **<event_object_attacked_object/>** changed
76 +)))|(% colspan="1" %)(% colspan="1" %)
77 +(((
78 +
38 38  )))
39 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
80 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
40 40  (((
41 41  //Old params: param = attacked object, param2 = attack method, param3 = attacked component//
42 42  //New params: param = attacked object, param2 = attack method, param3 = attack component detail list: [attacked component, attacking weapon]
43 43  Note that this also means the component attribute to the events is no longer available, so scripts checking the attacked component need to use event.param3.{1} instead//
44 44  )))
86 +|(% colspan="1" %)(% colspan="1" %)
87 +(((
88 +Scripts
89 +)))|(% colspan="1" %)(% colspan="1" %)
90 +(((
91 +3.20 Beta 1
92 +)))|(% colspan="1" %)(% colspan="1" %)
93 +(((
94 +Removed script property $trade.**restriction.faction**
95 +)))|(% colspan="1" %)(% colspan="1" %)
96 +(((
97 +
98 +)))
99 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
100 +(((
101 +//$trade.restriction.faction has been replaced with $trade.restriction.factions, which returns a list of factions.//
102 +)))
45 45  |(((
46 46  UI extensions
47 47  )))|(((
... ... @@ -48,12 +48,15 @@
48 48  3.20 Beta 1
49 49  )))|(((
50 50  **Lua**: **GetTradeRestrictions()**, **ToggleFactionTradeRestriction()** and **ToggleFactionTradeWareOverride()** are now obsolete!
109 +)))|(% colspan="1" %)(% colspan="1" %)
110 +(((
111 +
51 51  )))
52 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
113 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
53 53  (((
54 54  //With the addition of the Trade Rule feature the given functions are obsolete and do not function anymore. This set of functions will return dummy values to avoid breaking scripts. Use GetAllTradeRules(), GetContainerTradeRuleID(), SetContainerTradeRule() and similar trade rule functions as replacement.//
55 55  )))
56 -|(% colspan="3" %)(% colspan="3" %)
117 +|(% colspan="4" %)(% colspan="4" %)
57 57  (((
58 58  == 3.10 ==
59 59  )))
... ... @@ -66,12 +66,15 @@
66 66  )))|(% colspan="1" %)(% colspan="1" %)
67 67  (((
68 68  Removed script action **<add_build/>**
130 +)))|(% colspan="1" %)(% colspan="1" %)
131 +(((
132 +
69 69  )))
70 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
134 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
71 71  (((
72 72  //Removed <add_build/> action which was no longer needed and would result in builds being added in unsupported ways. Use other <add_build_xxx/> actions.//
73 73  )))
74 -|(% colspan="3" %)(% colspan="3" %)
138 +|(% colspan="4" %)(% colspan="4" %)
75 75  (((
76 76  == 3.00 ==
77 77  )))
... ... @@ -84,8 +84,11 @@
84 84  )))|(% colspan="1" %)(% colspan="1" %)
85 85  (((
86 86  Changed behaviour of script action **<get_suitable_job/>**
151 +)))|(% colspan="1" %)(% colspan="1" %)
152 +(((
153 +
87 87  )))
88 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
155 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
89 89  (((
90 90  //<get_suitable_job/> previously did not respect job quotas or the current number of job ships. It now does, only returning job IDs which are not exceeding the maxgalaxy quota. Using 'exceedquota' allows the action to behave as before.//
91 91  )))
... ... @@ -98,8 +98,11 @@
98 98  )))|(% colspan="1" %)(% colspan="1" %)
99 99  (((
100 100  Changed behaviour of script action **<get_ware_definition/>**
168 +)))|(% colspan="1" %)(% colspan="1" %)
169 +(((
170 +
101 101  )))
102 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
172 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
103 103  (((
104 104  //<get_ware_definition/> previously filtered for equipment wares by default. This is now not the case and existing cases now use flags="equipment". Additional filter attributes for group and tags has also been added.//
105 105  )))
... ... @@ -112,8 +112,11 @@
112 112  )))|(% colspan="1" %)(% colspan="1" %)
113 113  (((
114 114  Renamed all files in the **md**, ui, and **cutscenes** folders to lower-case
185 +)))|(% colspan="1" %)(% colspan="1" %)
186 +(((
187 +
115 115  )))
116 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
189 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
117 117  (((
118 118  //All MD, UI, and cutscene files have been renamed as lower-case. For most users this should have no effect since files packed in catalogs are essentially case-insensitive. However, this change can affect users on Linux systems when running a mod that contains single files instead of a catalog, and/or when playing with unpacked base game files//. If your mod has XML patch files that are not packed in a catalog, the filenames must be lower-case to match the filenames in the base game. (For info on using mod catalogs, see the Readme of the X Catalog Tool.)\\
119 119  
... ... @@ -128,8 +128,11 @@
128 128  )))|(% colspan="1" %)(% colspan="1" %)
129 129  (((
130 130  Adjustments of some MD library cues in the base game to change their usage from **<include_actions>** to <run_actions>
204 +)))|(% colspan="1" %)(% colspan="1" %)
205 +(((
206 +
131 131  )))
132 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
208 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
133 133  (((
134 134  //Some MD library cues in the base game that were previously used with <include_actions> have been adjusted, so they must now be used with the new MD action <run_actions> instead. Mods that use such a library with <include_actions> will have to switch to <run_actions> as well. A list of affected libraries is not provided here. Note: Additional library cues may be adjusted in future builds without further warning.//
135 135  )))
... ... @@ -142,8 +142,11 @@
142 142  )))|(% colspan="1" %)(% colspan="1" %)
143 143  (((
144 144  Changes to $dockingbay.**todockpos** and $dockingbay.**launchpos**
221 +)))|(% colspan="1" %)(% colspan="1" %)
222 +(((
223 +
145 145  )))
146 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
225 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
147 147  (((
148 148  //Before the change, positions are relative to $dockingbay.parent.
149 149  After the change, positions are relative to $dockingbay as specified in the documentation.//
... ... @@ -157,8 +157,11 @@
157 157  )))|(% colspan="1" %)(% colspan="1" %)
158 158  (((
159 159  Support for entity flag "**skillsvisible**" dropped
239 +)))|(% colspan="1" %)(% colspan="1" %)
240 +(((
241 +
160 160  )))
161 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
243 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
162 162  (((
163 163  //Entity skills are always visible; that flag was a leftover from XR. We removed support for the script property .skillsvisible, the attribute "skillsvisible" of <set_entity_traits> and <set_npc_template_traits>, and the parameter "skillsvisible" of Lua function GetComponentData().//
164 164  )))
... ... @@ -168,8 +168,11 @@
168 168  3.0 Beta 2
169 169  )))|(((
170 170  Changes to **<event_object_changed_owner>** and added **<event_object_changed_true_owner>**.
253 +)))|(% colspan="1" %)(% colspan="1" %)
254 +(((
255 +
171 171  )))
172 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
257 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
173 173  (((
174 174  //Before 3.0 Beta 2 there was just a single <event_object//_changed_owner> condition. This condition was triggered in multiple cases when an owner change occurred. However, the exact cases were inconsistent and also the event could have been triggered w/o an effective owner change having been applied.
175 175  3.0 Beta 2 fixes these inconsistencies and ensures that the event is only fired, if the "effective" component owner of the object changed. To handle cases where the script actually needs to be informed if the "true" owner of a component was changed (i.e. not taking the cover faction into account) a new <event_object_changed_true_owner> was introduced.
... ... @@ -185,8 +185,11 @@
185 185  )))|(% colspan="1" %)(% colspan="1" %)
186 186  (((
187 187  **MissionBoard** support dropped
273 +)))|(% colspan="1" %)(% colspan="1" %)
274 +(((
275 +
188 188  )))
189 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
277 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
190 190  (((
191 191  //MissionBoards was a dummy asset type which was only used during early development and never meant to be shipped in the released version. If any mod tried to make use of this asset type, undefined behaviour would occur. Therefore we cleaned things up in 3.0 Beta 1 including deprecating/removing any related UI/script function.//
192 192  )))
... ... @@ -196,8 +196,11 @@
196 196  3.0 Beta 1
197 197  )))|(((
198 198  By default, **job/god entries** now only spawn objects in space added by the extension in which they are defined
287 +)))|(% colspan="1" %)(% colspan="1" %)
288 +(((
289 +
199 199  )))
200 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
291 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
201 201  (((
202 202  //To better support extensions which add to the base game map, a job/god entry now defaults to only spawning objects in areas of the map that are added by the extension in which that entry is defined. You can override this behaviour by adding a matchextension="false" attribute to the job/god entry definition. This allows the entry to spawn objects anywhere that matches the entry's other criteria.//
203 203  )))
... ... @@ -210,8 +210,11 @@
210 210  )))|(% colspan="1" %)(% colspan="1" %)
211 211  (((
212 212  Script action **<add_actor_to_room/> **attribute **'room'** renamed to **'object'**
304 +)))|(% colspan="1" %)(% colspan="1" %)
305 +(((
306 +
213 213  )))
214 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
308 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
215 215  (((
216 216  //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.//
217 217  )))
... ... @@ -224,8 +224,11 @@
224 224  )))|(% colspan="1" %)(% colspan="1" %)
225 225  (((
226 226  Script action **<set_doors_locked/>** attribute **'group'** changed
321 +)))|(% colspan="1" %)(% colspan="1" %)
322 +(((
323 +
227 227  )))
228 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
325 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
229 229  (((
230 230  //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.//
231 231  )))
... ... @@ -238,8 +238,11 @@
238 238  )))|(% colspan="1" %)(% colspan="1" %)
239 239  (((
240 240  Script conditions **<event_hack_*/>** and **<event_controlpanel_hack_*/>** removed
338 +)))|(% colspan="1" %)(% colspan="1" %)
339 +(((
340 +
241 241  )))
242 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
342 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
243 243  (((
244 244  //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.//
245 245  )))
... ... @@ -252,8 +252,11 @@
252 252  )))|(% colspan="1" %)(% colspan="1" %)
253 253  (((
254 254  Script actions **<set_hack_target/>** and **<abort_hack/>** removed
355 +)))|(% colspan="1" %)(% colspan="1" %)
356 +(((
357 +
255 255  )))
256 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
359 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
257 257  (((
258 258  //These actions had no effect and were removed.//
259 259  )))
... ... @@ -266,8 +266,11 @@
266 266  )))|(% colspan="1" %)(% colspan="1" %)
267 267  (((
268 268  **<setup_conversation_minigame/>** script action removed
372 +)))|(% colspan="1" %)(% colspan="1" %)
373 +(((
374 +
269 269  )))
270 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
376 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
271 271  (((
272 272  //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.//
273 273  )))
... ... @@ -280,8 +280,11 @@
280 280  )))|(% colspan="1" %)(% colspan="1" %)
281 281  (((
282 282  <add_player_choice_*> **confidence** attribute removed
389 +)))|(% colspan="1" %)(% colspan="1" %)
390 +(((
391 +
283 283  )))
284 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
393 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
285 285  (((
286 286  //The default confidence of player options is another leftover from the XR era and had no effect in X4.//
287 287  )))
... ... @@ -294,8 +294,11 @@
294 294  )))|(% colspan="1" %)(% colspan="1" %)
295 295  (((
296 296  **<hack_via_control_panel/>** script action removed
406 +)))|(% colspan="1" %)(% colspan="1" %)
407 +(((
408 +
297 297  )))
298 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
410 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
299 299  (((
300 300  //Unused script action <hack_via_control_panel/> was removed.//
301 301  )))
... ... @@ -308,8 +308,11 @@
308 308  )))|(% colspan="1" %)(% colspan="1" %)
309 309  (((
310 310  **Lua: **GetMiniGameCursorPosition() removed
423 +)))|(% colspan="1" %)(% colspan="1" %)
424 +(((
425 +
311 311  )))
312 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
427 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
313 313  (((
314 314  //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.//
315 315  )))
... ... @@ -319,8 +319,11 @@
319 319  3.0 Beta 1
320 320  )))|(((
321 321  **FFI: **GetLocalizedInteractiveNotificationKey can return icon placeholders
437 +)))|(% colspan="1" %)(% colspan="1" %)
438 +(((
439 +
322 322  )))
323 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
441 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
324 324  (((
325 325  //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.//
326 326  )))
... ... @@ -333,8 +333,11 @@
333 333  )))|(% colspan="1" %)(% colspan="1" %)
334 334  (((
335 335  **FFI: **UIWeaponMod returned by GetInstalledWeaponMod() now includes property SurfaceElementFactor
454 +)))|(% colspan="1" %)(% colspan="1" %)
455 +(((
456 +
336 336  )))
337 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
458 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
338 338  (((
339 339  //In 3.0 Beta 1 we added support for a new weapon mod property "SurfaceElementFactor" to allow weapons to deal increased damage to surface elements such as Shield Generators, Turrets or Engines.//
340 340  )))
... ... @@ -347,8 +347,11 @@
347 347  )))|(% colspan="1" %)(% colspan="1" %)
348 348  (((
349 349  **$ware.illegal** updated
471 +)))|(% colspan="1" %)(% colspan="1" %)
472 +(((
473 +
350 350  )))
351 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
475 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
352 352  (((
353 353  //$ware.illegal used to return true if the specified ware has the 'illegal' tag which is no longer used.//
354 354  //It now returns true if $ware is illegal to any faction in the game.//
... ... @@ -362,8 +362,11 @@
362 362  )))|(% colspan="1" %)(% colspan="1" %)
363 363  (((
364 364  MD script **RML_Flight_Along_Path** removed
489 +)))|(% colspan="1" %)(% colspan="1" %)
490 +(((
491 +
365 365  )))
366 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
493 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
367 367  (((
368 368  //The MD script RML_Flight_Along_Path was not referened and was removed.//
369 369  )))
... ... @@ -376,8 +376,11 @@
376 376  )))|(% colspan="1" %)(% colspan="1" %)
377 377  (((
378 378  parameters of **<event_venture_mission_completed/>** changed
506 +)))|(% colspan="1" %)(% colspan="1" %)
507 +(((
508 +
379 379  )))
380 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
510 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
381 381  (((
382 382  //old params: param = venture details, param2 = ships involved, param3 = duration//
383 383  //new params: param = venture detail list: [mission name, mission type], param2 = list of ships involved, param3 = duration//
... ... @@ -389,8 +389,11 @@
389 389  )))|(((
390 390  **<set_object_wing_name/>** removed,
391 391  **<set_object_fleet_name/>** added
522 +)))|(% colspan="1" %)(% colspan="1" %)
523 +(((
524 +
392 392  )))
393 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
526 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
394 394  (((
395 395  //The common action <set_object_wing_name/> has been replaced with <set_object_fleet_name/>//
396 396  )))
... ... @@ -401,12 +401,15 @@
401 401  )))|(((
402 402  **$controllable.wing.*** removed,
403 403  **$controllable.fleet.*** added
537 +)))|(% colspan="1" %)(% colspan="1" %)
538 +(((
539 +
404 404  )))
405 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
541 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
406 406  (((
407 407  $controllable.wing.name, $controllable.wing.iscommander, and $controllable.wing.commander have been replaced with $controllable.fleet.name, $controllable.fleet.iscommander, and $controllable.fleet.commander
408 408  )))
409 -|(% colspan="3" %)(% colspan="3" %)
545 +|(% colspan="4" %)(% colspan="4" %)
410 410  (((
411 411  == 2.60 ==
412 412  )))
... ... @@ -416,8 +416,11 @@
416 416  2.60 Beta 1
417 417  )))|(((
418 418  '**checkoperational**' filter behaviour changed
555 +)))|(% colspan="1" %)(% colspan="1" %)
556 +(((
557 +
419 419  )))
420 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
559 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
421 421  (((
422 422  //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.//
423 423  
... ... @@ -429,12 +429,15 @@
429 429  2.60 Beta 1
430 430  )))|(((
431 431  $container.**supplyresources** behavior changed
571 +)))|(% colspan="1" %)(% colspan="1" %)
572 +(((
573 +
432 432  )))
433 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
575 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
434 434  (((
435 435  //The script keyword $container.supplyresources now includes reserved wares.//
436 436  )))
437 -|(% colspan="3" %)(% colspan="3" %)
579 +|(% colspan="4" %)(% colspan="4" %)
438 438  (((
439 439  == 2.20 ==
440 440  )))
... ... @@ -447,8 +447,11 @@
447 447  )))|(% colspan="1" %)(% colspan="1" %)
448 448  (((
449 449  **Lua: GetControllerInfo()** returned mouseSteering/mouseCursor values are undefined.
592 +)))|(% colspan="1" %)(% colspan="1" %)
593 +(((
594 +
450 450  )))
451 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
596 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
452 452  (((
453 453  //2.20 Beta 3 introduced the new direct mouse steering mode. The mode was however not integrated as a first level mode and hence GetControllerInfo() returned the "gamepad" mode while direct mouse steering was active.
454 454  In 2.20 Beta 4 we improved the situation slightly so that a call to GetControllerInfo() will return either "mouseCursor" or "mouseSteering" in any of the 3 mouse modes.//
... ... @@ -465,12 +465,15 @@
465 465  )))|(% colspan="1" %)(% colspan="1" %)
466 466  (((
467 467  Attribute for build related conditions e.g. **<event_build_finished/>** renamed from 'buildmodule' to 'buildprocessor'
613 +)))|(% colspan="1" %)(% colspan="1" %)
614 +(((
615 +
468 468  )))
469 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
617 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
470 470  (((
471 471  //The underlying behaviour remains the same in that it involves the buildprocessor, not the buildmodule. The attribute name has simply been corrected.//
472 472  )))
473 -|(% colspan="3" %)(% colspan="3" %)
621 +|(% colspan="4" %)(% colspan="4" %)
474 474  (((
475 475  == 2.00 ==
476 476  )))
... ... @@ -483,8 +483,11 @@
483 483  )))|(% colspan="1" %)(% colspan="1" %)
484 484  (((
485 485  **<event_build_finished/> **param2 now returns null instead of a construction sequence
634 +)))|(% colspan="1" %)(% colspan="1" %)
635 +(((
636 +
486 486  )))
487 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
638 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
488 488  (((
489 489  //The construction sequence which was finished should now be accessed via the buildtask provided via param3.//
490 490  )))
... ... @@ -497,8 +497,11 @@
497 497  )))|(% colspan="1" %)(% colspan="1" %)
498 498  (((
499 499  **param.boarding.{...}** strength parameters removed
651 +)))|(% colspan="1" %)(% colspan="1" %)
652 +(((
653 +
500 500  )))
501 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
655 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
502 502  (((
503 503  //The 'recruitstrength', 'veteranstrength' and 'elitestrength' script parameters were no longer required for balancing the boarding gameplay, and were removed.//
504 504  )))
... ... @@ -511,8 +511,11 @@
511 511  )))|(% colspan="1" %)(% colspan="1" %)
512 512  (((
513 513  **$defensible.boardee/$defensible.boarder** and **<set_object_boarder/>/<remove_object_boarder/>** removed
668 +)))|(% colspan="1" %)(% colspan="1" %)
669 +(((
670 +
514 514  )))
515 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
672 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
516 516  (((
517 517  //Due to changes to boarding in X4, the boarding connections accessed by these script properties and actions became redundent and thus, removed. Any connections set by these actions in a savegame will not survive loading.//
518 518  )))
... ... @@ -522,8 +522,11 @@
522 522  2.00 Beta 1
523 523  )))|(((
524 524  **FFI: GetUpgradeSlotCurrentComponent()/GetUpgradeSlotGroup()** works on non-operationals
682 +)))|(% colspan="1" %)(% colspan="1" %)
683 +(((
684 +
525 525  )))
526 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
686 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
527 527  (((
528 528  //Before 2.0 Beta 1 using GetUpgradeSlotCurrentComponent() or GetUpgradeSlotGroup() 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.//
529 529  )))
... ... @@ -533,8 +533,11 @@
533 533  2.00 Beta 1
534 534  )))|(((
535 535  **FFI: SetFormationShape()** no longer indicates an error upon certain error cases
696 +)))|(% colspan="1" %)(% colspan="1" %)
697 +(((
698 +
536 536  )))
537 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
700 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
538 538  (((
539 539  //Before 2.0 Beta 1 a call to SetFormationShape() indicated an error state to the caller in certain cases where setting a formation shape (potentially) failed. Due to a design flaw in the handling of formations, this however doesn't do any good, since the function by itself doesn't really set the formation shape in all cases. On top of that the call can fail at random. Hence, at the moment an indication of an error case that setting a formation potentially fails is no good to the caller and he has no means to distinguish that case from a real error case.//
540 540  //Therefore, in 2.0 Beta 1 we drop the error indication in case of an attempt to set the formation fails. We are currently working on a better solution to the underlying problem and hope to have it ready as part of a following beta.//
... ... @@ -545,8 +545,11 @@
545 545  2.00 Beta 1
546 546  )))|(((
547 547  **<create_formation/>** now requires the attributes: 'leader' and 'follower'. Attribute 'object' is now deprecated.
711 +)))|(% colspan="1" %)(% colspan="1" %)
712 +(((
713 +
548 548  )))
549 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
715 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
550 550  (((
551 551  //This now enforces a leader and at least one follower in order to create or change a formation.  Former implementation made it possible to create formations without any followers which led to issues.//
552 552  )))
... ... @@ -556,8 +556,11 @@
556 556  2.00 Beta 1
557 557  )))|(((
558 558  **<event_player_changed_target/>** now fires and returns null if the player deselects a target.
725 +)))|(% colspan="1" %)(% colspan="1" %)
726 +(((
727 +
559 559  )))
560 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
729 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
561 561  (((
562 562  //For prior behavior, check for event.param being non-null.//
563 563  )))
... ... @@ -567,8 +567,11 @@
567 567  2.00 Beta 1
568 568  )))|(((
569 569  **<shoot/>/<shoot_at/>** attribute changes.
739 +)))|(% colspan="1" %)(% colspan="1" %)
740 +(((
741 +
570 570  )))
571 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
743 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
572 572  (((
573 573  //Changed: Attribute "primary" is now optional and defines whether weapons from the ship's active primary weapon group will be fired. Defaults to true.//
574 574  //New attribute: "secondary" is an optional attribute that defines whether weapons from the ship's active secondary weapon group will be fired. Defaults to true.//
... ... @@ -582,8 +582,11 @@
582 582  2.00 Beta 1
583 583  )))|(((
584 584  **FFI: GetBuildTask()/GetNumBuildTasks()** got a new "buildmoduleid" parameter.(% class="confluenceTd" %)
757 +)))|(% colspan="1" %)(% colspan="1" %)
758 +(((
759 +
585 585  )))
586 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
761 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
587 587  (((
588 588  //Added possibility to query build tasks of a certain buildmodule.//
589 589  )))
... ... @@ -593,8 +593,11 @@
593 593  2.00 Beta 1
594 594  )))|(((
595 595  **Lua:** **GetLibraryEntry()** retrieved a new "buildresources" field.
771 +)))|(% colspan="1" %)(% colspan="1" %)
772 +(((
773 +
596 596  )))
597 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
775 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
598 598  (((
599 599  //Added list of resources a buildmodule needs to build.//
600 600  )))
... ... @@ -604,8 +604,11 @@
604 604  2.00 Beta 1
605 605  )))|(((
606 606  (% style="color: rgb(0,0,0);" %)**Lua:**(% style="color: rgb(0, 0, 0); color: rgb(0, 0, 0)" %)** CalculateTotalHullFraction()**(% style="color: rgb(0,0,0);" %)** **(%%)was removed.(% style="color: rgb(0,0,0);" %)
785 +)))|(% colspan="1" %)(% colspan="1" %)
786 +(((
787 +
607 607  )))
608 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
789 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
609 609  (((
610 610  //Unused, derelict function from XR - use GetComponentData(..., "hullpercent") instead.//
611 611  )))
... ... @@ -615,12 +615,15 @@
615 615  2.00 Beta 1
616 616  )))|(((
617 617  **FFI: (% style="color: rgb(0,0,0);" %)RequestDockAtReason()/(% style="color: rgb(0, 0, 0); color: rgb(0, 0, 0); color: rgb(0, 0, 0); color: rgb(0, 0, 0); color: rgb(0, 0, 0)" %)UndockPlayerShip()(%%) **changed their return values.(% style="color: rgb(0,0,0);" class="confluenceTd" %)
799 +)))|(% colspan="1" %)(% colspan="1" %)
800 +(((
801 +
618 618  )))
619 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
803 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
620 620  (((
621 621  //Changed return value type to const char* to better identify failure reasons in Lua script.//
622 622  )))
623 -|(% colspan="3" %)(% colspan="3" %)
807 +|(% colspan="4" %)(% colspan="4" %)
624 624  (((
625 625  == 1.50 ==
626 626  )))
... ... @@ -630,8 +630,11 @@
630 630  1.50 Beta 3
631 631  )))|(((
632 632  **Lua: GetComponentData() **changed behavior of "docksizes" propertly.(% class="confluenceTd" %)
817 +)))|(% colspan="1" %)(% colspan="1" %)
818 +(((
819 +
633 633  )))
634 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
821 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
635 635  (((
636 636  //The "docksizes" property no longer includes internal ship storage docks.//
637 637  )))
... ... @@ -641,8 +641,11 @@
641 641  1.50 Beta 2
642 642  )))|(((
643 643  **Meaning of "Shipyard"** was corrected throughout Lua/MD/AI scripts, so that Wharfs are not Shipyards (unlike in XR).
831 +)))|(% colspan="1" %)(% colspan="1" %)
832 +(((
833 +
644 644  )))
645 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
835 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
646 646  (((
647 647  //Shipyards (formerly also known as Capital Shipyards) can build capital ships, while Wharfs only build non-capital ships. To check whether a station is a Shipyard or a Wharf, check whether the station "can build ships".//
648 648  
... ... @@ -656,8 +656,11 @@
656 656  1.50 Beta 2
657 657  )))|(((
658 658  **FFI: UpgradeGroupInfo **datatype was changed.(% class="confluenceTd" %)
849 +)))|(% colspan="1" %)(% colspan="1" %)
850 +(((
851 +
659 659  )))
660 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
853 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
661 661  (((
662 662  //Added new "operational" field to retrieve information about number of operational upgrades in a group.//
663 663  )))
... ... @@ -670,8 +670,11 @@
670 670  )))|(% colspan="1" %)(% colspan="1" %)
671 671  (((
672 672  **FFI: SetGuidance()** removed useinfopoint argument.
866 +)))|(% colspan="1" %)(% colspan="1" %)
867 +(((
868 +
673 673  )))
674 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
870 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
675 675  (((
676 676  //In X Rebirth "info points" existed (which were mainly used as interaction points to scan stations/access information about modules). These were removed in X4 but this left-over property here was missed to be removed in-time for release. It was therefore removed now in order to move towards a stable/clean UI API.
677 677  //
... ... @@ -684,12 +684,15 @@
684 684  1.50 Beta 1
685 685  )))|(((
686 686  **FFI: CancelConstruction() **changed its return value.(% class="confluenceTd" %)
883 +)))|(% colspan="1" %)(% colspan="1" %)
884 +(((
885 +
687 687  )))
688 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
887 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
689 689  (((
690 690  (% style="color: rgb(0,0,0);" %)//CancelConstruction() now returns if the cancellation was successful. //
691 691  )))
692 -|(% colspan="3" %)(% colspan="3" %)
891 +|(% colspan="4" %)(% colspan="4" %)
693 693  (((
694 694  == 1.32 ==
695 695  )))
... ... @@ -699,12 +699,15 @@
699 699  1.32
700 700  )))|(((
701 701  **Lua: GetComponentData() **removed the "nextdestname" property.
901 +)))|(% colspan="1" %)(% colspan="1" %)
902 +(((
903 +
702 702  )))
703 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
905 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
704 704  (((
705 705  //Instead of "nextdestname", use the properties "destination" or "destinationsector" to retrieve a destination component, then retrieve its "name" property.//
706 706  )))
707 -|(% colspan="3" %)(% colspan="3" %)
909 +|(% colspan="4" %)(% colspan="4" %)
708 708  (((
709 709  == 1.20 ==
710 710  )))
... ... @@ -714,8 +714,11 @@
714 714  1.20
715 715  )))|(((
716 716  **FFI: GetAAOption()** got a new "useconfig" parameter.(% class="confluenceTd" %)
919 +)))|(% colspan="1" %)(% colspan="1" %)
920 +(((
921 +
717 717  )))
718 -|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
923 +|(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="4" data-highlight-colour="grey" %)
719 719  (((
720 720  //The AA setting was changed to check the new setting with the user. In order to restore the old setting (% style="color: rgb(0,0,0);" %)GetAAOption() gets the option to retrieve the config settings.//
721 721  )))
Confluence.Code.ConfluencePageClass[0]
id
... ... @@ -1,1 +1,1 @@
1 -91949663
1 +100040871
url
... ... @@ -1,1 +1,1 @@
1 -https://www.egosoft.com:8444/confluence/wiki/spaces/X4WIKI/pages/91949663/Breaking Changes
1 +https://www.egosoft.com:8444/confluence/wiki/spaces/X4WIKI/pages/100040871/Breaking Changes