BUTR / MnB2-Bannerlord-CommunityPatch

This is going to be a mod that just fixes up some things in Mount & Blade 2: Bannerlord before the Devs & QA team can get to them. They have priorities and a process.
MIT License
88 stars 30 forks source link

BUG: AI lords go missing near Ain Baliq, like the companion bug. #65

Open johnshepardn7117 opened 4 years ago

johnshepardn7117 commented 4 years ago

Short summary: This causes nations to fight at lower strength. Whatever nation this happens to is effectively fighting with far fewer armies. Partially a reason behind snowballing.

I noticed lords sometimes don't show up to armies under any circumstance. After ignoring it for a while, I noticed the same pattern when playing across multiple nations. I began searching for the lords only to find out some lords are missing. campaign.find_hero does not find them, and many other things do not work. Traveling and entering towns for over 2 weeks fails to yield any meaningful updates to the encyclopedia besides a loop.

-Lord seen near Ain Baliq. -Lord seen near Ain Baliq X days ago. -Lord seen near Ain Baliq

So on and so forth the process repeats.

Thus far I restarted the game and kept close watch on as many heroes as I could. Only to find out , again, that lords across different factions do indeed go missing. I am uncertain if this is partially responsible for the snowballing effect, for the factions are technically operating under strength.

The most recent playthrough: 3 lords from Vladia are "near Ain Baliq" plus their king. 2 from Western Empire 3 From Northern Empire 2 From Asarai 2 from Khuzait.

I do not notice this behaviro on Sturgia or Battanians, I have no idea why.

I'm not a modder so I tried waiting even longer periods of time, and my test dummies were Crotor, Phaea (Western Empire) and the Vladian king. All 3 missing, after 21 days of traveling to different towns nothing happened.

console commands attempted: find_hero (states hero could not be found kill_party (states party could not be found) wound_hero teleport_hero <- no idea how to use this, it keeps saying :the format is: but I can't get it to work on anyone anyways.

Temporary solution that yielded results for 2 weeks before the behavior started again, 1 lord at the time I think its the behavior and it grows from there. Temporary solution: make_hero_fugitive

I have no idea what effect that command creates, all I know is that command triggers the hero lord to reappear back in game.

Skau commented 4 years ago

Ain Baliq abduction. Interesting, and thanks for the info. We'll look into it. Wonder why find_hero didn't work, because make_hero_fugitive calls the same underlying code to fetch the hero to make fugitive, meaning that it calls find_hero under the hood during that command.

johnshepardn7117 commented 4 years ago

Update: @Skau Thanks to someone teaching me that the pipe icon in the middle of the commands isn't for show, I attempted the campaign.teleport command. That also works and transports the missing lords to the city specified.

The intriguing part is that those heroes came back together. i.e I used the command on crotor, leader of a clan in Western Empire: campaign.teleport_hero_to_settlement crotor | lageta

Both him and Phaea came back. I found this strange, only to replicate the same behavior with the Vladians and Aserai.

I used the command on the Vladian king, and the king and his two lords came back. I did the same for the lords of the ASerai, and they all came back at the same time...but only using the command on a single one of them.

A friend suggested that perhaps they were in an army together? I have no idea why the campaign.teleport_hero_to_settlement command works, AND that the lords come back together even though the command only specified 1 of them.

Tyler-IN commented 4 years ago

Do you have a saved game before you restored the heros? You could upload that.

johnshepardn7117 commented 4 years ago

Here we are. If there is a different way you'd like me to receive it, let me know. I uploaded it to my email's one drive and it sits there. https://knightsucfedu39751-my.sharepoint.com/:u:/g/personal/jsanchez112_knights_ucf_edu/EdWc1CqQTxVJg6S_HmeNW3ABdrQfl1YyhdBjYlOuWsOEYw?e=UKPze1

Skau commented 4 years ago

That link doesn't work unfortunately.

johnshepardn7117 commented 4 years ago

Agh, ok. Let us try direct route then. https://knightsucfedu39751-my.sharepoint.com/:u:/g/personal/jsanchez112_knights_ucf_edu/EdWc1CqQTxVJg6S_HmeNW3ABdrQfl1YyhdBjYlOuWsOEYw?e=UKPze1

Skau commented 4 years ago

That didn't work either :/

Tyler-IN commented 4 years ago

How big is it? If not too big, put it in discord, then copy the link and post here?

johnshepardn7117 commented 4 years ago

Save files are 50mb plus, discord only allows 8mb

What is your discord I'll send ya the link., last try at this lol https://knightsucfedu39751-my.sharepoint.com/:u:/g/personal/jsanchez112_knights_ucf_edu/EdWc1CqQTxVJg6S_HmeNW3ABdrQfl1YyhdBjYlOuWsOEYw?e=lYuSn4

Tyler-IN commented 4 years ago

"We're sorry, but [redacted email] can't be found in the knightsucfedu39751-my.sharepoint.com directory."

The sharepoint you're using is restricted access. Maybe try Google Drive or MS OneDrive.

johnshepardn7117 commented 4 years ago

Odd, I passed it on to a dude on discord and the link worked.

So, google drive it is. https://drive.google.com/open?id=1X_Fd7im5gOcRj1cJ3FTkJlWk9yvjE766

Skau commented 4 years ago

That worked. Did some testing:

Hero.All.Where(x => x.LastSeenPlace?.Name.ToString() == "Ain Baliq" && 
x.HomeSettlement?.Name.ToString() != "Ain Baliq").ToArray()

gave 24 (!) results. If also evaluated with PartyBelongedTo != null then 0 results are returned. So they all have PartyBelongedTo set to null in common. This isn't necessarily bad, but that all 24 are not in a party is odd. These heroes are from all over the world, rulers etc, including the ones mentioned above.

Teleporting the heroes does not seem to get them out of the broken state. They just chill in the keep you teleport them to and you can talk to them (unless you teleport them to an enemy keep). They never leave.

johnshepardn7117 commented 4 years ago

Using the teleportation command worked for me. Crotor, and his daughter (which I am aiming to marry) were lost. When I brought them back with console they acted as normal, last two wars Crotor forged an army of his own and led the campaign.

Skau commented 4 years ago

This seems like a bug in the AI code somewhere. TW is aware of issues like this (like the HOLDING bug), and they are hard to track down. I could probably make a temp fix along the lines of if their last settlement visited is Ain Baliq for too long (aka they never visit other places anymore), they get teleported to their home settlement automatically.

atif089 commented 4 years ago

I used cheat codes and campaign.teleport_hero_to_settlement to bring them back but there is another side effect to this bug. I am unable to recreate a party with that hero because it shows that they are still busy with another issue.

Tyler-IN commented 4 years ago

I think this is quest related, but I don't know the details. I know there are a few mods out there that address this sort of thing. Anyone know what the deal is?