Changes for page Breaking Changes

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

From version 16.1
edited by klaus
on 2019/02/01 16:14
Change comment: Added some pre-2.0 notes
To version 38.1
edited by nick
on 2019/09/09 13:13
Change comment: added parameters of event_venture_mission_completed changed

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -xwiki:XWiki.klaus
1 +xwiki:XWiki.nick
Content
... ... @@ -25,10 +25,267 @@
25 25  )))|=(((
26 26  Summary
27 27  )))
28 +|(% colspan="1" %)(% colspan="1" %)
29 +(((
30 +Scripts
31 +)))|(% colspan="1" %)(% colspan="1" %)
32 +(((
33 +3.0 Beta 1
34 +)))|(% colspan="1" %)(% colspan="1" %)
35 +(((
36 +Script action **<add_actor_to_room/> **attribute **'room'** renamed to **'object'**
37 +)))
38 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
39 +(((
40 +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 +)))
42 +|(% colspan="1" %)(% colspan="1" %)
43 +(((
44 +Scripts
45 +)))|(% colspan="1" %)(% colspan="1" %)
46 +(((
47 +3.0 Beta 1
48 +)))|(% colspan="1" %)(% colspan="1" %)
49 +(((
50 +Script action **<set_doors_locked/>** attribute **'group'** changed
51 +)))
52 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
53 +(((
54 +//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.//
55 +)))
56 +|(% colspan="1" %)(% colspan="1" %)
57 +(((
58 +Scripts
59 +)))|(% colspan="1" %)(% colspan="1" %)
60 +(((
61 +3.0 Beta 1
62 +)))|(% colspan="1" %)(% colspan="1" %)
63 +(((
64 +Script conditions **<event_hack_*/>** and **<event_controlpanel_hack_*/>** removed
65 +)))
66 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
67 +(((
68 +//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.//
69 +)))
70 +|(% colspan="1" %)(% colspan="1" %)
71 +(((
72 +Scripts
73 +)))|(% colspan="1" %)(% colspan="1" %)
74 +(((
75 +3.0 Beta 1
76 +)))|(% colspan="1" %)(% colspan="1" %)
77 +(((
78 +Script actions **<set_hack_target/>** and **<abort_hack/>** removed
79 +)))
80 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
81 +(((
82 +//These actions had no effect and were removed.//
83 +)))
84 +|(% colspan="1" %)(% colspan="1" %)
85 +(((
86 +Scripts
87 +)))|(% colspan="1" %)(% colspan="1" %)
88 +(((
89 +3.0 Beta 1
90 +)))|(% colspan="1" %)(% colspan="1" %)
91 +(((
92 +**<setup_conversation_minigame/>** script action removed
93 +)))
94 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
95 +(((
96 +//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.//
97 +)))
98 +|(% colspan="1" %)(% colspan="1" %)
99 +(((
100 +Scripts
101 +)))|(% colspan="1" %)(% colspan="1" %)
102 +(((
103 +3.0 Beta 1
104 +)))|(% colspan="1" %)(% colspan="1" %)
105 +(((
106 +<add_player_choice_*> **confidence** attribute removed
107 +)))
108 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
109 +(((
110 +//The default confidence of player options is another leftover from the XR era and had no effect in X4.//
111 +)))
112 +|(% colspan="1" %)(% colspan="1" %)
113 +(((
114 +Scripts
115 +)))|(% colspan="1" %)(% colspan="1" %)
116 +(((
117 +3.0 Beta 1
118 +)))|(% colspan="1" %)(% colspan="1" %)
119 +(((
120 +**<hack_via_control_panel/>** script action removed
121 +)))
122 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
123 +(((
124 +//Unused script action <hack_via_control_panel/> was removed.//
125 +)))
126 +|(% colspan="1" %)(% colspan="1" %)
127 +(((
128 +UI core
129 +)))|(% colspan="1" %)(% colspan="1" %)
130 +(((
131 +3.0 Beta 1
132 +)))|(% colspan="1" %)(% colspan="1" %)
133 +(((
134 +**Lua: **GetMiniGameCursorPosition() removed
135 +)))
136 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
137 +(((
138 +//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.//
139 +)))
140 +|(% colspan="1" %)(% colspan="1" %)
141 +(((
142 +Scripts
143 +)))|(% colspan="1" %)(% colspan="1" %)
144 +(((
145 +3.0 Beta 1
146 +)))|(% colspan="1" %)(% colspan="1" %)
147 +(((
148 +**$ware.illegal** updated
149 +)))
150 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
151 +(((
152 +//$ware.illegal used to return true if the specified ware has the 'illegal' tag which is no longer used.//
153 +\\//It now returns true if $ware is illegal to any faction in the game.//
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 +'**checkoperational**' filter behaviour changed
164 +)))
165 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
166 +(((
167 +//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.//
168 +
169 +//Sub nodes such as match_child will have checkoperational default to false. Existing uses may find that results now include non-operational components.//
170 +)))
171 +|(% colspan="1" %)(% colspan="1" %)
172 +(((
173 +Scripts
174 +)))|(% colspan="1" %)(% colspan="1" %)
175 +(((
176 +3.0 Beta 1
177 +)))|(% colspan="1" %)(% colspan="1" %)
178 +(((
179 +MD script **RML_Flight_Along_Path** removed
180 +)))
181 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
182 +(((
183 +//The MD script RML_Flight_Along_Path was not referened and was removed.//
184 +)))
185 +|(% colspan="1" %)(% colspan="1" %)
186 +(((
187 +Scripts
188 +)))|(% colspan="1" %)(% colspan="1" %)
189 +(((
190 +3.0 Beta 1
191 +)))|(% colspan="1" %)(% colspan="1" %)
192 +(((
193 +parameters of event_venture_mission_completed changed
194 +)))
195 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
196 +(((
197 +old params: param = venture details, param2 = ships involved, param3 = duration
198 +new params: param = venture detail list: [mission name, mission type], param2 = list of ships involved, param3 = duration
199 +)))
28 28  |(((
201 +Scripts
202 +)))|(((
203 +2.60 Beta 1
204 +)))|(((
205 +$container.supplyresources behavior changed
206 +)))
207 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
208 +(((
209 +//The script keyword $container.supplyresources now includes reserved wares.//
210 +)))
211 +|(% colspan="1" %)(% colspan="1" %)
212 +(((
213 +UI core
214 +)))|(% colspan="1" %)(% colspan="1" %)
215 +(((
216 +2.20 Beta 3/4
217 +)))|(% colspan="1" %)(% colspan="1" %)
218 +(((
219 +**Lua: GetControllerInfo()** returned mouseSteering/mouseCursor values are undefined.
220 +)))
221 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
222 +(((
223 +//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.
224 +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.//
225 +
226 +//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.
227 +//
228 +)))
229 +|(% colspan="1" %)(% colspan="1" %)
230 +(((
231 +Scripts
232 +)))|(% colspan="1" %)(% colspan="1" %)
233 +(((
234 +2.20 Beta 3
235 +)))|(% colspan="1" %)(% colspan="1" %)
236 +(((
237 +Attribute for build related conditions e.g. **<event_build_finished/>** renamed from 'buildmodule' to 'buildprocessor'
238 +)))
239 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
240 +(((
241 +//The underlying behaviour remains the same in that it involves the buildprocessor, not the buildmodule. The attribute name has simply been corrected.//
242 +)))
243 +|(% colspan="1" %)(% colspan="1" %)
244 +(((
245 +Scripts
246 +)))|(% colspan="1" %)(% colspan="1" %)
247 +(((
248 +2.00 Beta 1
249 +)))|(% colspan="1" %)(% colspan="1" %)
250 +(((
251 +**<event_build_finished/> **param2 now returns null instead of a construction sequence
252 +)))
253 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
254 +(((
255 +//The construction sequence which was finished should now be accessed via the buildtask provided via param3.//
256 +)))
257 +|(% colspan="1" %)(% colspan="1" %)
258 +(((
259 +Scripts
260 +)))|(% colspan="1" %)(% colspan="1" %)
261 +(((
262 +2.00 Beta 1
263 +)))|(% colspan="1" %)(% colspan="1" %)
264 +(((
265 +**param.boarding.{...}** strength parameters removed
266 +)))
267 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
268 +(((
269 +//The 'recruitstrength', 'veteranstrength' and 'elitestrength' script parameters were no longer required for balancing the boarding gameplay, and were removed.//
270 +)))
271 +|(% colspan="1" %)(% colspan="1" %)
272 +(((
273 +Scripts
274 +)))|(% colspan="1" %)(% colspan="1" %)
275 +(((
276 +2.00 Beta 1
277 +)))|(% colspan="1" %)(% colspan="1" %)
278 +(((
279 +**$defensible.boardee/$defensible.boarder** and **<set_object_boarder/>/<remove_object_boarder/>** removed
280 +)))
281 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
282 +(((
283 +//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.//
284 +)))
285 +|(((
29 29  UI extensions
30 30  )))|(((
31 -2.0 Beta 1
288 +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
299 +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
311 +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
322 +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
333 +2.00 Beta 1
77 77  )))|(((
78 -Attribute changes to **<shoot/>** and **<shoot_at/>**
335 +**<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,66 @@
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  |(((
346 +UI extensions
347 +)))|(((
348 +2.00 Beta 1
349 +)))|(((
350 +**FFI: GetBuildTask()/GetNumBuildTasks()** got a new "buildmoduleid" parameter.(% class="confluenceTd" %)
351 +)))
352 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
353 +(((
354 +//Added possibility to query build tasks of a certain buildmodule.//
355 +)))
356 +|(((
357 +UI extensions
358 +)))|(((
359 +2.00 Beta 1
360 +)))|(((
361 +**Lua:** **GetLibraryEntry()** retrieved a new "buildresources" field.
362 +)))
363 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
364 +(((
365 +//Added list of resources a buildmodule needs to build.//
366 +)))
367 +|(((
368 +UI extensions
369 +)))|(((
370 +2.00 Beta 1
371 +)))|(((
372 +(% 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);" %)
373 +)))
374 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
375 +(((
376 +//Unused, derelict function from XR - use GetComponentData(..., "hullpercent") instead.//
377 +)))
378 +|(((
379 +UI extensions
380 +)))|(((
381 +2.00 Beta 1
382 +)))|(((
383 +**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" %)
384 +)))
385 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
386 +(((
387 +//Changed return value type to const char* to better identify failure reasons in Lua script.//
388 +)))
389 +|(((
390 +UI extensions
391 +)))|(((
392 +1.50 Beta 3
393 +)))|(((
394 +**Lua: GetComponentData() **changed behavior of "docksizes" propertly.(% class="confluenceTd" %)
395 +)))
396 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
397 +(((
398 +//The "docksizes" property no longer includes internal ship storage docks.//
399 +)))
400 +|(((
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).
405 +**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  )))
415 +|(((
416 +UI extensions
417 +)))|(((
418 +1.50 Beta 2
419 +)))|(((
420 +**FFI: UpgradeGroupInfo **datatype was changed.(% class="confluenceTd" %)
421 +)))
422 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
423 +(((
424 +//Added new "operational" field to retrieve information about number of operational upgrades in a group.//
425 +)))
103 103  |(% colspan="1" %)(% colspan="1" %)
104 104  (((
105 105  UI extensions
... ... @@ -108,20 +108,45 @@
108 108  1.50 Beta 1
109 109  )))|(% colspan="1" %)(% colspan="1" %)
110 110  (((
111 -**FFI:** Removed **SetGuidance()** argument useinfopoint.
434 +**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  (((
115 -//The deprecated third argument was removed. The new function declaration is: void SetGuidance(UniverseID componentid, UIPosRot offset)//
438 +//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.
439 +//
440 +
441 +//The new function declaration is: void SetGuidance(UniverseID componentid, UIPosRot offset)//
116 116  )))
117 117  |(((
118 118  UI extensions
119 119  )))|(((
446 +1.50 Beta 1
447 +)))|(((
448 +**FFI: CancelConstruction() **changed its return value.(% class="confluenceTd" %)
449 +)))
450 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
451 +(((
452 +(% style="color: rgb(0,0,0);" %)//CancelConstruction() now returns if the cancellation was successful. //
453 +)))
454 +|(((
455 +UI extensions
456 +)))|(((
120 120  1.32
121 121  )))|(((
122 -**Lua:** Removed **GetComponentData()** property "**nextdestname**".
459 +**Lua: GetComponentData() **removed the "nextdestname" property.
123 123  )))
124 124  |(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
125 125  (((
126 -//Instead of "nextdestname", use the GetComponentData() properties "destination" or "destinationsector" to retrieve a destination component, then retrieve its "name" property.//
463 +//Instead of "nextdestname", use the properties "destination" or "destinationsector" to retrieve a destination component, then retrieve its "name" property.//
127 127  )))
465 +|(((
466 +UI extensions
467 +)))|(((
468 +1.20
469 +)))|(((
470 +**FFI: GetAAOption()** got a new "useconfig" parameter.(% class="confluenceTd" %)
471 +)))
472 +|(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)(% class="highlight-grey" colspan="3" data-highlight-colour="grey" %)
473 +(((
474 +//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.//
475 +)))
Confluence.Code.ConfluencePageClass[0]
id
... ... @@ -1,1 +1,1 @@
1 -78577909
1 +85622793
url
... ... @@ -1,1 +1,1 @@
1 -https://www.egosoft.com:8444/confluence/wiki/spaces/X4WIKI/pages/78577909/Breaking Changes
1 +https://www.egosoft.com:8444/confluence/wiki/spaces/X4WIKI/pages/85622793/Breaking Changes