[Solved] Frigate Jericho magically disappears

Any issues with the XWAU or X-Wing Alliance? Please let us know here!

Re: [BUG] Frigate Jericho magically disappears

Darth_Binks
Cadet 1st Class
Posts: 120
Joined: Wed Jul 14, 2004 11:01 pm

Post by Darth_Binks » Mon Jul 06, 2020 1:39 am

Jaeven your fix worked too, the Jericho was able to complete it's mission.
Blue Zoidberg: As for me I design mansions and then live in them. I'm lying! I'm an apalling failure!<BR>Red Zoidberg: Me too! A big fat one.<BR>-The Farnsworth Parabox, Futurama

tubaman21
Cadet 4th Class
Posts: 11
Joined: Sun Jun 28, 2020 2:36 pm

Post by tubaman21 » Thu Jul 09, 2020 11:53 pm

Jaeven wrote:
Tue Jun 30, 2020 6:48 pm
Ok, this should fix it. I can't reliably reproduce the Jericho disappearing or even guess at what causes it. I'll put some more time in and see what genius has installed the Katana Fleet's flight computers on the Jericho.

In the meantime, this fix should allow the mission to complete. Be sure you back up your old file first, and then see if this allows you to progress.
This still didn't work for me. I complete everything except the Jericho objective. It hypers off into oblivion and I can't advance.
~Bryan
Commander Tubaman
Maverick 2
Task Force Maverick
"We stand alone, together."

tubaman21
Cadet 4th Class
Posts: 11
Joined: Sun Jun 28, 2020 2:36 pm

Post by tubaman21 » Fri Jul 10, 2020 12:15 am

Mark_Farlander wrote:
Tue Jun 30, 2020 6:34 pm
I made an update to B5M7 back in 2018. You can download it from here: https://www.dropbox.com/sh/f8glzvvjmypr ... y7bPa?dl=0
However, it's not compatible with the new Super Backdrop pack. The new starfield backdrops are missing.

This one worked for me. The Jericho left pretty quick after the battle was over, saving a bunch of time.

Thanks!
~Bryan
Commander Tubaman
Maverick 2
Task Force Maverick
"We stand alone, together."

User avatar
Mark_Farlander
Rebel Alliance
Posts: 580
Joined: Tue Jan 16, 2018 10:47 pm

Post by Mark_Farlander » Fri Jul 10, 2020 5:38 pm

There were 2 different problems with FRG Jericho. The first was that FRG Jericho sometimes destroyed PLT/1 Hurrim Base when the base had not been disabled yet.
The second one (the one posted in this topic) was that FRG Jericho did not return to the Liberty, so you could not complete the mission.

Let's see more in detail why FRG Jericho "magically disappeared" in the vanilla version.
Orders 2 and 3 in region 2 for FRG Jericho both had a jump to order condition.
Order 2 is a "SS Patrol + attack" order, and as such it requires targets and waypoints, but there were no waypoints enabled.
I enabled them, but their lack was not the cause of the problem. The cause of the problem was the jump to order conditions and how the "complete mission" condition works.

Original version:
FRG Jericho
Order 2: SS Patrol + attack any team but Rebel
Jump to order 2 in R2 condition: PLT/1 Hurrim Base must be boarded and SHU Lendros must be boarded
Order 3: Hyper to Region 1
Jump to order 3 in R2 condition: ATR Storm Unit 1 must complete mission and ATR Storm Unit 2 must complete mission

It is obvious that the events triggering order 3 happen after the ones triggering order 2, because ATR Storm Unit 1 needs to board PLT/1 Hurrim base and ATR Storm Unit 2 needs to board SHU Lendros.
However, multiple event-triggered orders work in this way: if there is more than 1 order with a jump condition (different from "Always true") true, than the Flight Group performs the order with the lowest order priority number among the ones with a jump condition true and different from "Always true".
I've reported this thing in the "Orders (Advanced)" section of the Mod-Wiki.

In other simpler words:
[Jump to order 2 condition] becomes true - the Flight Group starts performing order 2
[Jump to order 3 condition] becomes true - the Flight Group still performs order 2 because [Jump to order 2 condition] is true and order 2 has priority over order 3

Order 3 (Hyper to Region 1) is only triggered if ATR Storm Unit 1 and 2 come back to FRG Jericho and every object in Region 2 not belonging to team Rebel gets destroyed afterward, because FRG Jericho actually needs to complete order 2 before moving to order 3.
The problem is that if you destroy the last not-Rebel object before both the ATRs have come back to FRG Jericho, order 3 (Hyper to Region 1) cannot be performed because the related jump condition is still false and the first 2 orders are already accomplished.
In such case, the Departure event (which does not count as "leaving a region") is triggered instead and FRG Jericho "magically disappears".
Once triggered, the Departure event of a Flight Group is irrevocable.


What did I do in that update v2.0?
First of all I did an order 1 rework for FRG Jericho to solve the problem that FRG Jericho sometimes destroyed PLT/1 Hurrim Base when the base had not been disabled yet.
I've assigned order 1 using Global Groups. The only drawback is that now since PLT/1 Hurrim Base is no longer a viable target for FRG Jericho, the frigate cannot take down the shields of the station. I think this is not a problem because you need to disable it with ion cannons, and ion cannons are not canonically available to EF76 Nebulon-B escort frigates.

Then I simply removed the jump to order 2 condition and set it to "Always true". Then I assigned GG1 as primary target and ISDII Corrupter as secondary target (the only target missing among the ones listed in order 1). In this way if targets available to order 1 should get exhausted, then order 2 is performed. I also enabled waypoints for order 2 of course.
And "PLT/1 Hurrim Base must be boarded and SHU Lendros must be boarded", which was the original jump to order 2 condition, now it's the jump to order 3 condition.
That's why FRG Jericho "saved a bunch of time". This might look as an issue if you compare the completion time of the vanilla mission with the one of the v2.0 update, but it also solves another problem: in the vanilla mission you need to destroy ISDII Corrupter to complete it even if that is just a bonus objective; now the destruction of ISDII Corrupter is no longer mandatory.

However, there is still a case when FRG Jericho "departs": if you destroy all enemy Flight Groups (except SHU Lendros and PLT/1 Hurrim Base) before SHU Lendros and PLT/1 Hurrim Base have been both boarded.
In such case the first 2 orders are accomplished and the jump to order 3 condition is still false.
Of course you need to play Easy + Unlimited Ammo ON to make such case happen.

I cannot re-touch the jump to order conditions further because you cannot tell if SHU Lendros or PLT/1 Hurrim Base will be boarded first, and unfortunately there are only 2 lines available for a jump to order condition in general.

So the solution I'm applying in update v2.1 is to add a fourth order to FRG Jericho: "Hyper to Region 1" with an appropriate jump to order 4 condition (destruction of every enemy FG except SHU Lendros and PLT/1 Hurrim Base? First it's better to check any abort mission conditions).
Since if a Flight Group is performing a "Hyper to Region" order no more jump-condition-triggered orders can be performed, then order 4 would not affect order 3 (and vice versa), and the player would never know if FRG Jericho returned to the Liberty because of order 3 or order 4.


As for the remaining problem in this mission (a MOB Vemmer not getting repaired), I'm doing some experiments with the "Engines Damaged" status to better understand what happens.
I don't judge tactics. The Battle is the best and only Judge.

User avatar
Will T
Galactic Empire
Posts: 1371
Joined: Thu Aug 19, 2004 11:01 pm

Post by Will T » Sat Jul 11, 2020 11:58 am

Interesting. Couple of things I'd like to understand on this.
Mark_Farlander wrote:
Fri Jul 10, 2020 5:38 pm
In other simpler words:
[Jump to order 2 condition] becomes true - the Flight Group starts performing order 2
[Jump to order 3 condition] becomes true - the Flight Group still performs order 2 because [Jump to order 2 condition] is true and order 2 has priority over order 3

Order 3 (Hyper to Region 1) is only triggered if ATR Storm Unit 1 and 2 come back to FRG Jericho and every object in Region 2 not belonging to team Rebel gets destroyed afterward, because FRG Jericho actually needs to complete order 2 before moving to order 3.
The problem is that if you destroy the last not-Rebel object before both the ATRs have come back to FRG Jericho, order 3 (Hyper to Region 1) cannot be performed because the related jump condition is still false and the first 2 orders are already accomplished.
In such case, the Departure event (which does not count as "leaving a region") is triggered instead and FRG Jericho "magically disappears".
Once triggered, the Departure event of a Flight Group is irrevocable.
So what would happen if you changed the priority order of the orders with jumps? What if you made the jump condition that's supposed to happen first a lower priority than the later jump condition, so that the first one can be 'overridden'?

In other words, would putting Hyper to Region #1 as Order #2, and SS Patrol + Attack Any Team but Rebel as Order #3 break things even worse, or would it mean that the Jericho jumps to order #3 when those conditions are met, then jumps to order #2 when the later conditions are met because those have higher priority?

It seems to me that if an order has a jump condition associated with it, it will only move to that order when the jump condition is satisfied, right? It won't just move to that order in sequence when the orders before it are completed? Otherwise we wouldn't have this problem in the first place, because the Jericho would have just moved to order #3 when #2 and #1 were complete. So that means that if we swapped orders #2 and #3, the Jericho won't move to Hyper To Region 1 immediately after Order #1 is complete, right?


If that doesn't work for any reason, why can't we use the remaining empty Order Slot as a buffer? Couldn't we set Order #2 to be something generic like infinitely patrol waypoints around the map defending itself, then keep Hyper to Region #1 as Order #3 with its current jump conditions, and move the current Order #2 to Order #4 so that it's a lower priority than Hyper to Region 1 when the jump conditions come?


Lastly on this bit, why is there even a 'Departure Event'? The Departure conditions on the Jericho itself are set to Never True. So even if it gets to this state of applicable orders complete, and the jump to the remaining order incomplete then why is the Never True on the Departure overridden? Is that just default behaviour for FGs? It doesn't seem to apply to fighters, at least, because if fighter FGs complete all applicable orders but still have orders remaining under a jump condition, they go into the Patrolling For Targets behaviour, right? Or is that because of a slightly different set of triggers?

What if we changed the Departure condition to be via the Hyper Buoy instead of Hyperspace? Would that maybe at least buy some time for the appropriate order jump conditions to trigger?

Mark_Farlander wrote:
Fri Jul 10, 2020 5:38 pm
First of all I did an order 1 rework for FRG Jericho to solve the problem that FRG Jericho sometimes destroyed PLT/1 Hurrim Base when the base had not been disabled yet.
I've assigned order 1 using Global Groups. The only drawback is that now since PLT/1 Hurrim Base is no longer a viable target for FRG Jericho, the frigate cannot take down the shields of the station. I think this is not a problem because you need to disable it with ion cannons, and ion cannons are not canonically available to EF76 Nebulon-B escort frigates.
Not sure that really tracks as a justification. You don't need ion cannons to take out shields. The 'intention' of the mission is clearly for the Neb-B to use its guns to damage the shields and soften the station up for you. It doesn't need ion cannons to do that. The problem is just the mission isn't scripted properly to stop the Jericho when it needs to.

One of the Craft When conditions is 'has any hull damage'. There's still a couple of unknowns triggers for this condition, and a lot of conditions have a corresponding negative (eg. Craft When Disabled and Craft When Not Disabled are one pair of opposing conditions). Is it possible that one of these unknowns might be 'has NO hull damage'? I feel like if that were an option, TG would have used it already but maybe it was an oversight. Could we test the remaining unknowns and see if there's any way to get the Jericho to only attack targets with shields?

What about changing the order of targets to make the MCRVs the primary target, and the station the secondary target? Would that allow the player more time to disable the station?
Mark_Farlander wrote:
Fri Jul 10, 2020 5:38 pm
Then I simply removed the jump to order 2 condition and set it to "Always true". Then I assigned GG1 as primary target and ISDII Corrupter as secondary target (the only target missing among the ones listed in order 1). In this way if targets available to order 1 should get exhausted, then order 2 is performed. I also enabled waypoints for order 2 of course.
And "PLT/1 Hurrim Base must be boarded and SHU Lendros must be boarded", which was the original jump to order 2 condition, now it's the jump to order 3 condition.
That's why FRG Jericho "saved a bunch of time". This might look as an issue if you compare the completion time of the vanilla mission with the one of the v2.0 update, but it also solves another problem: in the vanilla mission you need to destroy ISDII Corrupter to complete it even if that is just a bonus objective; now the destruction of ISDII Corrupter is no longer mandatory.
While it's not technically an objective, I think the mission tracks weirdly if the Corrupter isn't destroyed. It's kinda supposed to happen. For one thing, it leaves a very dangerous FG hanging around. Dunari is on the DREAD Longshot, and the Longshot has no orders beyond its patrol and attack order. So if the Jericho leaves early, while the Corrupter is still around, you're potentially leaving the Longshot alone against the Corrupter where it will probably get destroyed. While the player might be out of the region before that happens, it still feels a bit weird for the Rebels to just abandon their ally to an ISD.
Formerly known as The 95 Headhunter

User avatar
Mark_Farlander
Rebel Alliance
Posts: 580
Joined: Tue Jan 16, 2018 10:47 pm

Post by Mark_Farlander » Sun Jul 12, 2020 9:09 am

I see there are many questions. I'm answering the first half now and the second half tomorrow.
So what would happen if you changed the priority order of the orders with jumps? What if you made the jump condition that's supposed to happen first a lower priority than the later jump condition, so that the first one can be 'overridden'?
That's exactly what I suggest doing in the "Orders (Advanced)" section of the Mod-Wiki.
The original mission designers in X-Wing Alliance are David Wessman, Bill Morrison and Morgan Gray.
The interesting thing is that the missions built by David Wessman (the missions having "w" as last letter) usually follow this correct order priority sequence, whereas the missions built by Morgan Gray (the missions having "g" as last letter) often have a wrong order priority sequence.


In other words, would putting Hyper to Region #1 as Order #2, and SS Patrol + Attack Any Team but Rebel as Order #3 break things even worse, or would it mean that the Jericho jumps to order #3 when those conditions are met, then jumps to order #2 when the later conditions are met because those have higher priority?
Of course this is the logical way to set orders and jump conditions, but the bug of FRG Jericho departing without coming back to Region 1 is not caused by the illogical order priority sequence.
The bug is caused by a "blind order time" (at the moment I use this nomenclature, but suggestions for a different one are welcome).
For "blind order time" I mean that there is a chance that FRG Jericho has no orders to perform because all the orders with jump conditions true (or "Always true") are already accomplished and the remaining ones still have a false jump condition.
In such case the Departure event is immediately triggered. Once triggered, the Departure event is irrevocable.


It seems to me that if an order has a jump condition associated with it, it will only move to that order when the jump condition is satisfied, right?
Yes. If the jump condition is different from "Always true", then the Flight Group will only perform that order when the jump condition is satisfied.


It won't just move to that order in sequence when the orders before it are completed?
That's right. Additionally, if there are more than 1 order with jump condition satisfied and different from "Always true", then all those orders have priority over all the orders with jump condition set to "Always true".
However, there is a relevant thing to remember: the priority scale of the orders with jump condition satisfied and different from "Always true" is always kept as you see it in AlliED.
In other simpler words if order 1 has jump condition set to "Always true" and order 2 and order 3 both have a jump condition different from "Always true", then when both those jump conditions are satisfied the FG performs order 2, then order 3 and lastly order 1.
I've reported this thing in the "Orders (Advanced)" section of the Mod-Wiki, but I did not report any examples. Suggestions are welcome.
I don't judge tactics. The Battle is the best and only Judge.

User avatar
Mark_Farlander
Rebel Alliance
Posts: 580
Joined: Tue Jan 16, 2018 10:47 pm

Post by Mark_Farlander » Tue Jul 14, 2020 3:42 am

If that doesn't work for any reason, why can't we use the remaining empty Order Slot as a buffer? Couldn't we set Order #2 to be something generic like infinitely patrol waypoints around the map defending itself, then keep Hyper to Region #1 as Order #3 with its current jump conditions, and move the current Order #2 to Order #4 so that it's a lower priority than Hyper to Region 1 when the jump conditions come?
Setting a buffer order to avoid a premature Departure event is a good idea, and that's exactly what I suggest doing in the "Orders (Advanced)" section of the Mod-Wiki.
The problem is that since FRG Jericho is a capital ship, it is recommended to set a SS (starship) order, and SS Circle requires targets and waypoints, and not just waypoints like Circle waypoints (not SS), therefore the problem of the premature Departure event when all targets are exhausted would still remain.


Lastly on this bit, why is there even a 'Departure Event'? The Departure conditions on the Jericho itself are set to Never True. So even if it gets to this state of applicable orders complete, and the jump to the remaining order incomplete then why is the Never True on the Departure overridden? Is that just default behaviour for FGs?
The Departure event is triggered as soon as at any time the Flight Group has no orders to perform OR the Departure condition becomes true OR the abort mission condition becomes true.
If the Departure condition and the abort mission condition are set to Never true (and this is the case), then the only way to trigger the Departure event is having no orders to perform.


It doesn't seem to apply to fighters, at least, because if fighter FGs complete all applicable orders but still have orders remaining under a jump condition, they go into the Patrolling For Targets behaviour, right? Or is that because of a slightly different set of triggers?
"Patrolling For Targets" is not an order or a default behavior, it's just a CMD description. If you see a fighter with a "Patrolling For Targets" CMD description, it is actually performing an "Attack targets" order (or a "Disable targets" order) and the targets are available, but they are too far from the attacker and the AI is set to take more time to establish which one to attack before moving to attack the nearest target.
Remember that each AI-controlled object keeps refreshing the order to perform, but not the target to select available for the current order.
In other words it's the difference between "Order priority and target priority" explained in the "Orders (Advanced)" section of the Mod-Wiki.


What if we changed the Departure condition to be via the Hyper Buoy instead of Hyperspace?
If only the Hyper Buoy had a hangar...
I don't judge tactics. The Battle is the best and only Judge.

Post Reply