Changes for page Breaking Changes

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

From version 17.1
edited by stefan
on 2019/02/01 19:18
Change comment: give some details about the removal of the infopoint for modders not being familiar with XR
To version 39.1
edited by klaus
on 2019/09/11 11:23
Change comment: Moved checkoperational change to 2.60

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -xwiki:XWiki.stefan
1 +xwiki:XWiki.klaus
Content
... ... @@ -25,10 +25,280 @@
25 25  )))|=(((
26 26  Summary
27 27  )))
28 +|(% colspan="3" %)(% colspan="3" %)
29 +(((
30 +== 3.00 ==
31 +)))
32 +|(% colspan="1" %)(% colspan="1" %)
33 +(((
34 +Scripts
35 +)))|(% colspan="1" %)(% colspan="1" %)
36 +(((
37 +3.0 Beta 1
38 +)))|(% colspan="1" %)(% colspan="1" %)
39 +(((
40 +Script action **<add_actor_to_room/> **attribute **'room'** renamed to **'object'**
41 +)))
42 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
43 +(((
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.
45 +)))
46 +|(% colspan="1" %)(% colspan="1" %)
47 +(((
48 +Scripts
49 +)))|(% colspan="1" %)(% colspan="1" %)
50 +(((
51 +3.0 Beta 1
52 +)))|(% colspan="1" %)(% colspan="1" %)
53 +(((
54 +Script action **<set_doors_locked/>** attribute **'group'** changed
55 +)))
56 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
57 +(((
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.//
59 +)))
60 +|(% colspan="1" %)(% colspan="1" %)
61 +(((
62 +Scripts
63 +)))|(% colspan="1" %)(% colspan="1" %)
64 +(((
65 +3.0 Beta 1
66 +)))|(% colspan="1" %)(% colspan="1" %)
67 +(((
68 +Script conditions **<event_hack_*/>** and **<event_controlpanel_hack_*/>** removed
69 +)))
70 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
71 +(((
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.//
73 +)))
74 +|(% colspan="1" %)(% colspan="1" %)
75 +(((
76 +Scripts
77 +)))|(% colspan="1" %)(% colspan="1" %)
78 +(((
79 +3.0 Beta 1
80 +)))|(% colspan="1" %)(% colspan="1" %)
81 +(((
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 +|(% colspan="1" %)(% colspan="1" %)
145 +(((
146 +Scripts
147 +)))|(% colspan="1" %)(% colspan="1" %)
148 +(((
149 +3.0 Beta 1
150 +)))|(% colspan="1" %)(% colspan="1" %)
151 +(((
152 +**$ware.illegal** updated
153 +)))
154 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
155 +(((
156 +//$ware.illegal used to return true if the specified ware has the 'illegal' tag which is no longer used.//
157 +\\//It now returns true if $ware is illegal to any faction in the game.//
158 +)))
159 +|(% colspan="1" %)(% colspan="1" %)
160 +(((
161 +Scripts
162 +)))|(% colspan="1" %)(% colspan="1" %)
163 +(((
164 +3.0 Beta 1
165 +)))|(% colspan="1" %)(% colspan="1" %)
166 +(((
167 +MD script **RML_Flight_Along_Path** removed
168 +)))
169 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
170 +(((
171 +//The MD script RML_Flight_Along_Path was not referened and was removed.//
172 +)))
173 +|(% colspan="1" %)(% colspan="1" %)
174 +(((
175 +Scripts
176 +)))|(% colspan="1" %)(% colspan="1" %)
177 +(((
178 +3.0 Beta 1
179 +)))|(% colspan="1" %)(% colspan="1" %)
180 +(((
181 +parameters of **<event_venture_mission_completed/>** changed
182 +)))
183 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
184 +(((
185 +//old params: param = venture details, param2 = ships involved, param3 = duration//
186 +//new params: param = venture detail list: [mission name, mission type], param2 = list of ships involved, param3 = duration//
187 +)))
188 +|(% colspan="3" %)(% colspan="3" %)
189 +(((
190 +== 2.60 ==
191 +)))
28 28  |(((
193 +Scripts
194 +)))|(((
195 +2.60 Beta 1
196 +)))|(((
197 +'**checkoperational**' filter behaviour changed
198 +)))
199 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
200 +(((
201 +//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.//
202 +
203 +//Sub nodes such as match_child will have checkoperational default to false. Existing uses may find that results now include non-operational components.//
204 +)))
205 +|(((
206 +Scripts
207 +)))|(((
208 +2.60 Beta 1
209 +)))|(((
210 +$container.**supplyresources** behavior changed
211 +)))
212 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
213 +(((
214 +//The script keyword $container.supplyresources now includes reserved wares.//
215 +)))
216 +|(% colspan="3" %)(% colspan="3" %)
217 +(((
218 +== 2.20 ==
219 +)))
220 +|(% colspan="1" %)(% colspan="1" %)
221 +(((
222 +UI core
223 +)))|(% colspan="1" %)(% colspan="1" %)
224 +(((
225 +2.20 Beta 3/4
226 +)))|(% colspan="1" %)(% colspan="1" %)
227 +(((
228 +**Lua: GetControllerInfo()** returned mouseSteering/mouseCursor values are undefined.
229 +)))
230 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
231 +(((
232 +//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.
233 +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.//
234 +
235 +//It's a pending change to ensure that the returned mode is more reasonable in an upcoming patch. So be aware that another breaking change might be introduced at some point.
236 +//
237 +)))
238 +|(% colspan="1" %)(% colspan="1" %)
239 +(((
240 +Scripts
241 +)))|(% colspan="1" %)(% colspan="1" %)
242 +(((
243 +2.20 Beta 3
244 +)))|(% colspan="1" %)(% colspan="1" %)
245 +(((
246 +Attribute for build related conditions e.g. **<event_build_finished/>** renamed from 'buildmodule' to 'buildprocessor'
247 +)))
248 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
249 +(((
250 +//The underlying behaviour remains the same in that it involves the buildprocessor, not the buildmodule. The attribute name has simply been corrected.//
251 +)))
252 +|(% colspan="3" %)(% colspan="3" %)
253 +(((
254 +== 2.00 ==
255 +)))
256 +|(% colspan="1" %)(% colspan="1" %)
257 +(((
258 +Scripts
259 +)))|(% colspan="1" %)(% colspan="1" %)
260 +(((
261 +2.00 Beta 1
262 +)))|(% colspan="1" %)(% colspan="1" %)
263 +(((
264 +**<event_build_finished/> **param2 now returns null instead of a construction sequence
265 +)))
266 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
267 +(((
268 +//The construction sequence which was finished should now be accessed via the buildtask provided via param3.//
269 +)))
270 +|(% colspan="1" %)(% colspan="1" %)
271 +(((
272 +Scripts
273 +)))|(% colspan="1" %)(% colspan="1" %)
274 +(((
275 +2.00 Beta 1
276 +)))|(% colspan="1" %)(% colspan="1" %)
277 +(((
278 +**param.boarding.{...}** strength parameters removed
279 +)))
280 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
281 +(((
282 +//The 'recruitstrength', 'veteranstrength' and 'elitestrength' script parameters were no longer required for balancing the boarding gameplay, and were removed.//
283 +)))
284 +|(% colspan="1" %)(% colspan="1" %)
285 +(((
286 +Scripts
287 +)))|(% colspan="1" %)(% colspan="1" %)
288 +(((
289 +2.00 Beta 1
290 +)))|(% colspan="1" %)(% colspan="1" %)
291 +(((
292 +**$defensible.boardee/$defensible.boarder** and **<set_object_boarder/>/<remove_object_boarder/>** removed
293 +)))
294 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
295 +(((
296 +//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.//
297 +)))
298 +|(((
29 29  UI extensions
30 30  )))|(((
31 -2.0 Beta 1
301 +2.00 Beta 1
32 32  )))|(((
33 33  **FFI: GetUpgradeSlotCurrentComponent()/GetUpgradeSlotGroup()** works on non-operationals
34 34  )))
... ... @@ -39,7 +39,7 @@
39 39  |(((
40 40  UI extensions
41 41  )))|(((
42 -2.0 Beta 1
312 +2.00 Beta 1
43 43  )))|(((
44 44  **FFI: SetFormationShape()** no longer indicates an error upon certain error cases
45 45  )))
... ... @@ -51,7 +51,7 @@
51 51  |(((
52 52  Scripts
53 53  )))|(((
54 -2.0 Beta 1
324 +2.00 Beta 1
55 55  )))|(((
56 56  **<create_formation/>** now requires the attributes: 'leader' and 'follower'. Attribute 'object' is now deprecated.
57 57  )))
... ... @@ -62,7 +62,7 @@
62 62  |(((
63 63  Scripts
64 64  )))|(((
65 -2.0 Beta 1
335 +2.00 Beta 1
66 66  )))|(((
67 67  **<event_player_changed_target/>** now fires and returns null if the player deselects a target.
68 68  )))
... ... @@ -73,9 +73,9 @@
73 73  |(((
74 74  AI Scripts
75 75  )))|(((
76 -2.0 Beta 1
346 +2.00 Beta 1
77 77  )))|(((
78 -Attribute changes to **<shoot/>** and **<shoot_at/>**
348 +**<shoot/>/<shoot_at/>** attribute changes.
79 79  )))
80 80  |(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
81 81  (((
... ... @@ -86,11 +86,70 @@
86 86  //Corrects now-obsolete assumption that primary weapon groups only contain guns and secondary weapon groups only contain missile launchers.//
87 87  )))
88 88  |(((
359 +UI extensions
360 +)))|(((
361 +2.00 Beta 1
362 +)))|(((
363 +**FFI: GetBuildTask()/GetNumBuildTasks()** got a new "buildmoduleid" parameter.(% class="confluenceTd" %)
364 +)))
365 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
366 +(((
367 +//Added possibility to query build tasks of a certain buildmodule.//
368 +)))
369 +|(((
370 +UI extensions
371 +)))|(((
372 +2.00 Beta 1
373 +)))|(((
374 +**Lua:** **GetLibraryEntry()** retrieved a new "buildresources" field.
375 +)))
376 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
377 +(((
378 +//Added list of resources a buildmodule needs to build.//
379 +)))
380 +|(((
381 +UI extensions
382 +)))|(((
383 +2.00 Beta 1
384 +)))|(((
385 +(% 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);" %)
386 +)))
387 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
388 +(((
389 +//Unused, derelict function from XR - use GetComponentData(..., "hullpercent") instead.//
390 +)))
391 +|(((
392 +UI extensions
393 +)))|(((
394 +2.00 Beta 1
395 +)))|(((
396 +**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" %)
397 +)))
398 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
399 +(((
400 +//Changed return value type to const char* to better identify failure reasons in Lua script.//
401 +)))
402 +|(% colspan="3" %)(% colspan="3" %)
403 +(((
404 +== 1.50 ==
405 +)))
406 +|(((
407 +UI extensions
408 +)))|(((
409 +1.50 Beta 3
410 +)))|(((
411 +**Lua: GetComponentData() **changed behavior of "docksizes" propertly.(% class="confluenceTd" %)
412 +)))
413 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
414 +(((
415 +//The "docksizes" property no longer includes internal ship storage docks.//
416 +)))
417 +|(((
89 89  All
90 90  )))|(((
91 91  1.50 Beta 2
92 92  )))|(((
93 -Corrected **meaning of "Shipyard"** throughout Lua/MD/AI scripts, so that Wharfs are not Shipyards (unlike in XR).
422 +**Meaning of "Shipyard"** was corrected throughout Lua/MD/AI scripts, so that Wharfs are not Shipyards (unlike in XR).
94 94  )))
95 95  |(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
96 96  (((
... ... @@ -100,6 +100,17 @@
100 100  //Lua / GetComponentData() properties: Removed "iscapitalshipyard", fixed "isshipyard", added "canbuildships", "iswharf", "isequipmentdock"//
101 101  //Scripts: Fixed property .isshipyard, added .iswharf (.canbuildships existed already)//
102 102  )))
432 +|(((
433 +UI extensions
434 +)))|(((
435 +1.50 Beta 2
436 +)))|(((
437 +**FFI: UpgradeGroupInfo **datatype was changed.(% class="confluenceTd" %)
438 +)))
439 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
440 +(((
441 +//Added new "operational" field to retrieve information about number of operational upgrades in a group.//
442 +)))
103 103  |(% colspan="1" %)(% colspan="1" %)
104 104  (((
105 105  UI extensions
... ... @@ -108,7 +108,7 @@
108 108  1.50 Beta 1
109 109  )))|(% colspan="1" %)(% colspan="1" %)
110 110  (((
111 -**FFI:** Removed **SetGuidance()** argument useinfopoint.
451 +**FFI: SetGuidance()** removed useinfopoint argument.
112 112  )))
113 113  |(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
114 114  (((
... ... @@ -120,11 +120,41 @@
120 120  |(((
121 121  UI extensions
122 122  )))|(((
463 +1.50 Beta 1
464 +)))|(((
465 +**FFI: CancelConstruction() **changed its return value.(% class="confluenceTd" %)
466 +)))
467 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
468 +(((
469 +(% style="color: rgb(0,0,0);" %)//CancelConstruction() now returns if the cancellation was successful. //
470 +)))
471 +|(% colspan="3" %)(% colspan="3" %)
472 +(((
473 +== 1.32 ==
474 +)))
475 +|(((
476 +UI extensions
477 +)))|(((
123 123  1.32
124 124  )))|(((
125 -**Lua:** Removed **GetComponentData()** property "**nextdestname**".
480 +**Lua: GetComponentData() **removed the "nextdestname" property.
126 126  )))
127 127  |(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
128 128  (((
129 -//Instead of "nextdestname", use the GetComponentData() properties "destination" or "destinationsector" to retrieve a destination component, then retrieve its "name" property.//
484 +//Instead of "nextdestname", use the properties "destination" or "destinationsector" to retrieve a destination component, then retrieve its "name" property.//
130 130  )))
486 +|(% colspan="3" %)(% colspan="3" %)
487 +(((
488 +== 1.20 ==
489 +)))
490 +|(((
491 +UI extensions
492 +)))|(((
493 +1.20
494 +)))|(((
495 +**FFI: GetAAOption()** got a new "useconfig" parameter.(% class="confluenceTd" %)
496 +)))
497 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
498 +(((
499 +//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.//
500 +)))
Confluence.Code.ConfluencePageClass[0]
id
... ... @@ -1,1 +1,1 @@
1 -78578134
1 +86048772
url
... ... @@ -1,1 +1,1 @@
1 -https://www.egosoft.com:8444/confluence/wiki/spaces/X4WIKI/pages/78578134/Breaking Changes
1 +https://www.egosoft.com:8444/confluence/wiki/spaces/X4WIKI/pages/86048772/Breaking Changes