Results 1 to 14 of 14

Thread: CTD after battles in Syracuse

  1. #1

    Default CTD after battles in Syracuse

    Hello there.

    I've got two crashes after finishing battles (one field and one siege) both in Syracuse. Playing as Rome. I've got the crash log file of the latter. Guess the latter has overwritten the former. (see attachment)

    Thanks in advance for the help.
    Attached Files Attached Files

  2. #2

    Default Re: CTD after battles in Syracuse

    The logs indicate that you're playing on Huge unit settings, and that you've played multiple battles during your game session of 40+ minutes. You've also apparently during that session multiple battles with around 3000 friendly units alone, not counting the enemies. Unfortunately, fighting consecutive large battles increases the chances of a post-battle CTD. Next time, save and restart M2TW when your play session exceeds 30 minutes, or after you fight one huge battle. It's definitely annoying to do so, but it drastically reduces the chances of a post-battle CTD.

    As for an actual fix, well, there has been reports for EB1 that some trait triggers for post-battle traits may be the cause behind these CTDs. EB2 might have a few faulty trait triggers as well. Your logs indicate that the crash occurred right as some post-battle trait calculations began. The line

    Code:
    17:43:42.756 [game.script.trigger] [trace] Trigger <general_gains_command_experience_from_battle> fired
    Implies that one of the PostBattle trait triggers caused the crash. After all, the logs abruptly stop after general_gains_command_experience_from_battle whereas previous instances of general_gains_command_experience_from_battle include a bunch of PostBattle triggers.

    Since you're playing as Rome, the following Rome-specific trait triggers might be occasionally causing CTDs

    Code:
    Trigger Roman_wins_battle_Confidens_Fidens
      WhenToTest PostBattle
    
    
      Condition IsGeneral
            and FactionType f_rome
            and Trait Confidens = 1
            and WonBattle
            and Trait BattlePoints > 2
    
    
      Affects Confidens  1  Chance  50
    
    Trigger General_Securus_PostBattle
      WhenToTest PostBattle
    
    
      Condition FactionType f_rome
            and WasAttacker
            and IsGeneral
            and PercentageOfArmyKilled > 40
            and PercentageEnemyKilled < 25
            and Trait Temperament > 3
    
    
      Affects Securus  1  Chance  20
    
    Trigger General_VeryHardBattle_Constans
      WhenToTest PostBattle
    
    
      Condition IsGeneral
            and FactionType f_rome
            and Trait RecentBattleDifficulty = 4
            and not Routs
            and GeneralFoughtInCombat
            and PercentageEnemyKilled > 10
    
    
      Affects Constans  1  Chance  20
    
    Trigger GeneralModestus_Patrician_PostBattle1
      WhenToTest CharacterTurnStart
    
    
      Condition FactionType f_rome
            and Trait RecentDefeat > 0
            and Trait Selflessness > 3
            and Trait Modestus < 1
            and AgentType = family
    
    
      Affects Modestus   3  Chance  5
    
    Trigger General_Victorious_Continentia_PostBattle
      WhenToTest PostBattle
    
    
      Condition FactionType f_rome
            and IsGeneral
            and WonBattle
            and Trait Selflessness > 3
            and Attribute Loyalty > 4
    
    
      Affects Continentia  1  Chance  50
    
    Trigger General_Victorious_Corona_Obsidionalis_PostBattle_SallyBesieger
      WhenToTest PostBattle
    
    
      Condition FactionType f_rome
            and IsGeneral
            and WasAttacker
            and WonBattle
            and I_ConflictType SallyBesieger
    
    
      Affects CoronaObsidionalis  1  Chance  100
    
    Trigger Admiral_wins_Corona_Rostrata
      WhenToTest PostBattle
    
    
      Condition FactionType f_rome
            and AgentType = admiral
            and I_ConflictType Naval
            and WonBattle
            and Trait Sailor > 3
            and I_TurnNumber > 400
            and PercentageEnemyKilled > 35
    
    
      Affects CoronaRostrata  1  Chance  10
    
    Trigger General_Victorious_Corona_Ovalis_PostBattle
      WhenToTest PostBattle
    
    
      Condition FactionType f_rome
            and IsGeneral
            and WasAttacker
            and WonBattle
            and I_ConflictType Normal
            and GeneralFoughtFaction slave
            and Trait BattlePoints > 3
    
    
      Affects CoronaOvalis  1  Chance  10
    
    Trigger Imperator_granted_PostBattle_Attacker
      WhenToTest PostBattle
    
    
      Condition IsGeneral
            and WonBattle
            and WasAttacker
            and FactionType f_rome
            and Trait BattlePoints > 3
            and Trait Imperator < 1
            and Trait CelebratedTriumphator < 1
    
    
      Affects Imperator  1  Chance  100
      Affects Triumphator  1  Chance  100
    
    
    ;------------------------------------------
    Trigger Imperator_granted_PostBattle_Defender
      WhenToTest PostBattle
    
    
      Condition IsGeneral
            and WonBattle
            and not WasAttacker
            and FactionType f_rome
            and Trait BattlePoints > 3
            and Trait Imperator < 1
            and Trait CelebratedTriumphator < 1
    
    
      Affects Imperator  1  Chance  100
      Affects Triumphator  1  Chance  100
    Either that, or the Spoils of Victory script is causing this

    Code:
    ; Phase 0 - Spoils of Victory - Large Battle Counter
    Since log lines like "AH11a_Battle_Victory_Huge" tend to follow right after general_gains_command_experience_from_battle. May I ask if the crash-inducing battle was a large one where you killed most of the enemy? If so, then it's likely that you triggered one of the Spoils of War scripts and that caused the crash

  3. #3

    Default Re: CTD after battles in Syracuse

    Hello Mr. Shoebopp!

    Yep I indeed kill a reinforcing Rebel army to the last man on the Syracuse city battle map, then ended the battle without actually entering Syracuse itself as I was not feeling my army to be strong enough after dealing with the reinforcements that I intercepted and destroyed.

    I play the game in windowed mode and I often alt+tab out of it, but the game time counter does not take this into account.

    The previous battle I played in Syracuse resulted in the same crash, but alas I did not save the log file thinking that was a one off. That battle was not on a city map and that was a clear victory. This one though albeit tactically sound, it was in the end of the day, counted as a defeat.

    I hope I could provide some more clues.

    If not then I am still thankful for your advice, as in the purposeful save, restart and reload save thing, especially around larger battles.

  4. #4

    Icon9 Re: CTD after battles in Syracuse

    Did the same battle again. Same result.

    One thing changed though. I got reminded to use the LAA and I remembered that I recently reinstalled Medieval 2 due to having changed SSDs, and it turns out the LAA's changes in medieval.exe were no longer being applied for like a month or so.

    Yet having applied LAA to the exe did not change the outcome.
    Attached Files Attached Files
    Last edited by benczeb90; May 28, 2023 at 05:46 AM.

  5. #5

    Default Re: CTD after battles in Syracuse

    Both Rebel armies had these two units:
    Ekaulakoi Sunimonum (celtiberian cavalry rider)
    Mezugenoi (celtiberian infantry dunaminaca swordsmen)

    Both Rebel armies had Rebel generals (Xystophoroi) with their own portraits.

    I'm referring to a post made by Roma_Victrix more than a year ago where he reported Iberian and Celtiberian units to cause crashes.
    https://www.twcenter.net/forums/show...the-system-log

    EDIT:
    although in the unit.error.log there are indeed celtiberian/iberian units, none of them matched with the celtiberian units my opponent armies had on the battlefield (seen above)

    Also, the first battle, with no log (but i could redo it to get the log), I played with a General unit.
    The second battle (Syracuse city map) I played with no general. So who'd exactly get the traits the error log was talking about?

    Bovine's log files are now in the attachment.
    Attached Files Attached Files
    Last edited by benczeb90; May 28, 2023 at 07:44 AM. Reason: after checking Bovine's tool's log files

  6. #6

    Default Re: CTD after battles in Syracuse

    Missing battle map assets would cause a CTD as soon as the battle starts loading, so it's not those Celtiberian units causing the issue. You did the smart thing by testing the battle without a general, so thank you for providing that info. If it's not the traits that's causing the CTD, then do these:
    1. Once you get the post-battle summary screen, wait until 10 seconds after the music ends before proceeding
    2. Please share the coordinates of your besieging army by hovering your mouse over your army, and pressing
    Code:
    ~
    to open up the console. Then, execute
    Code:
    show_cursorstat
    to get the coordinates of your besieging army. It might be the battle map tile that's causing the issue.
    3. Use cheats to auto-win the battle and go through the usual post-battle motions. Let us know if it crashes once you take the settlement this way
    4. Move your besieging army to a different tile and fight the battles there

    Since you've already used a lot of your own time refighting battles, please just do #2 and #3 to respect your time. Those are quick to do, and provide additional info

  7. #7

    Default Re: CTD after battles in Syracuse

    Thank you for your answer!

    1) Interestingly, if I enter the battle map, finish deployment, start the battle, quit and thus have a clear defeat, upon returning to the campaign map my whole army just dies, along with a reinforcing army of mine. Is this normal? I thought they're going to just disengage.
    Also, I always study the battle results screen at least for 15 seconds. Is that not enough? I have the music muted at all times.

    Do you think I should replay the battle again and just add more waiting time at the end before trying to proceed back to the campaign map?

    2) 142 129 Just north of Syracuse.
    3) Hit auto_win attacker and then auto-resolved the battle. No crash.
    4) Like I said before, I had my first battle way north of the city, close to the Messana border, with a general in the army, against one of the same Rebel armies that had these Celtiberic units in them. It had the same crash.

    There is no point in testing these battles within the borders of Syracuse province because it was the same result in the countryside as well as in the city map. In the one I've won (with general), in the other I've lost (without general), same crash regardless of the outcome.
    If you believe I'm wrong about this statement, please tell me why.

    This was quick. I'm eager to help figuring out this problem.
    Last edited by benczeb90; May 28, 2023 at 11:19 AM.

  8. #8

    Default Re: CTD after battles in Syracuse

    1) That happens when your army doesn't have anywhere to retreat to. Usually this happens on islands where you have no friendly territory, or when on the campaign map you're completely blocked by enemy zones of control. When you say you study the battle results, do you click on the page that shows the performance of the individual units? That one might not count. I would just wait in the initial overall results screen for at least 45 seconds
    2) Thank you. You said just north of Syracuse - interestingly I've personally never fought on that specific tile.
    3) Okay, this is good info. That means it has to do something with the battle map. Though I need to ask: did you get a message saying your general got a trait called "Captured Enemy Camp"? This is because there are trait triggers that fire when you absolutely destroy the enemy. For medium battles it's usually "Captured Enemy Camp", and for very large battles like the one you have, it's "Captured Enemy Treasury". I suspect that the large block of EDCT code that deals with these traits might have something to do with this.
    4) Since the Celtiberian units are the common denominator, please tell share:
    - the turn number. If the turn number is after 140, then the Scutarii reforms might've taken place, giving the Celtiberian units their armor upgraded model and thus changing the model we'll have to check
    - the EBII version. The latest stable version is 2.35a R3.5 . It should say so in the bottom left corner of the EBII menu screen. Non R3.5 versions have missing models like for Roma_Victrix's situation
    - check data/unit_models/_units and look for the following .mesh files and their last changed dates. You need to make sure they exist, and that they're up to date

    celtiberian_rider_late_lod0, 1, and 2 (October 17, 2019)
    celtiberian_rider_lod0, 1, and 2 (October 17, 2019)
    celtiberian_swordsmen_late_lod0, 1, and 2 (November 14, 2019)
    celtiberian_swordsmen_lod0, 1, and 2 (November 14, 2019)

    data/unit_models/_units/textures
    EB_Celtiberian_Rider_Late_normal (October 6, 2019)
    EB_Celtiberian_Rider_Late (October 6, 2019)
    EB_Celtiberian_Rider_normal (October 2, 2019)
    EB_Celtiberian_Rider (October 2, 2019)
    EB_Celtiberian_Swordsmen_Late_normal (November 12, 2019)
    EB_Celtiberian_Swordsmen_Late (November 12, 2019)
    EB_Celtiberian_Swordsmen_normal (November 3, 2019)
    EB_Celtiberian_Swordsmen (November 3, 2019)

    data/unit_models/att

    celtiberian_n (June 1, 2018)
    celtiberian (June 1, 2018)

    Finally, I'd like for you to fight a very small test battle. To respect your time, it'll have to be against the smallest rebel army you can find, and you'll be using cheats
    1. Use toggle_fow
    2. Look around the campaign map for the smallest army you can find
    3. Take note of the general/captain's name. Be wary, the displayed name in your campaign, and the internal name that responds to cheats may be different. If the cheats later on don't work, then open up the EBII/data directory and search for that name. You should come across a names.txt file. Inside of it, you find mappings between "internal" and displayed names. For example, the displayed "Eumenes" name might actually be "EumenesA" or "EumenesB" internally. There are other weird cases like "Moskos" being internally "Moskoi" or something completely different
    4. Use show_cursorstat to figure out while tile the rebel army near Messena is. Take note of that
    5. Destroy that rebel army using cheats
    6. Teleport the tiny rebel stack you found earlier to that tile
    7. Save the game in a new savefile
    8. Fight the battle manually

    If it persistently crashes, then it's the tile that's cursed. If not, it's the Celtiberian units. Sorry that you have to spend time troubleshooting this mod instead of just playing it, but I think we're close to figuring out what's the problem

  9. #9

    Default Re: CTD after battles in Syracuse

    1) Yep, I haven't taken Massalia yet so yeah. No friendly ZOC in Sicily for me. This would explain them just dying. If I had a ship on the shores perhaps things would've gone differently. Two armies meaning two separate 'raiding fleet'. But maybe those wouldn't count. Anyway I reloaded and autoresolved it.

    Also yep, I meant I'm always browsing the performance results. So that doesn't count. A minute of bland waiting will be tested next time I get the chance.

    3) "did you get a message saying your general got a trait called "Captured Enemy Camp"?" When auto_winning the siege with the no-general army then no. No message, nothing. But when auto_winning the siege with the general-led army, he got an "Enemy treasury captured" trait. Though this is not what went down when doing it manually. The general-led army was "waiting to enter battle" while I intercepted Syracuse's general-led Rebel reinforcement army with my no-general army and then quit. Now that I think of it, if it didn't crash, 'tactically retreating' like that would've killed my two armies so in hindsight I wouldn't have done that having not conquered Messana beforehand, to allow for a tactical retreat.
    4) No this is around turns 40-50.
    Yes the version number is: V2.35A R3.5

    celtiberian_rider_late_lod0, 1, and 2 (October 17, 2019) - yes
    celtiberian_rider_lod0, 1, and 2 (October 17, 2019) - yes
    celtiberian_swordsmen_late_lod0, 1, and 2 (November 14, 2019) - it's man, not men, but yes
    celtiberian_swordsmen_lod0, 1, and 2 (November 14, 2019) - no it is November 5, 2019

    data/unit_models/_units/textures - The textures folders are not exactly below _units but within each culture folder so there are many textures folders. This isn't meant as nitpicking. It might be something that's wrong on my end.
    EB_Celtiberian_Rider_Late_normal (October 6, 2019) - yes
    EB_Celtiberian_Rider_Late (October 6, 2019) - yes
    EB_Celtiberian_Rider_normal (October 2, 2019) - yes
    EB_Celtiberian_Rider (October 2, 2019) - yes
    EB_Celtiberian_Swordsmen_Late_normal (November 12, 2019) - no it's November 13, 2019
    EB_Celtiberian_Swordsmen_Late (November 12, 2019) - yes
    EB_Celtiberian_Swordsmen_normal (November 3, 2019) - yes
    EB_Celtiberian_Swordsmen (November 3, 2019) - yes

    celtiberian_n (June 1, 2018) - yes
    celtiberian (June 1, 2018) - yes

    I need to process your last request. Gonna edit this post later.

    EDIT: So you're interested in the first battle "near Messana". Turns out the first battle was not in the Syracuse province but in the 'Messana province' which is called Sicilia province.
    The coordinates are to the south of Messana:
    my army, with a general: 143 135
    the enemy, rebel general called Kephalos, within a celtiberian horse unit (Ekualakoi Sunimoum): 142 135
    Okay so destroyed this army using cheats (got Enemy Camp Captured trait)
    Found two small rebel armies.
    Trying to move_character Damianos 142 135
    character not found
    despite in names.txt: {Damianos}Damianos
    Trying to move_character Sokrates 142 135
    character not found
    despite in names.txt: {Sokrates}Sokrates
    Ffs...btw you didn't say what cheat to use apart from show_cursorstat so I gathered this is what you meant.

    So I can't teleport. move_character is flawless in DaC and AGO. Been using it regularly. But here it looks like it's broken.
    Although as I've said before, I'm not a fan of the cursed tile concept. How could I accidentally find two for my very first time on the island?
    Last edited by benczeb90; May 29, 2023 at 04:27 AM. Reason: okay finished editing. it's your turn now :)

  10. #10

    Default Re: CTD after battles in Syracuse

    Oh, to do the move_character cheat, you need to separate the coordinates with a comma, not space. Also, if the stack is not led by a character, you might need to put "Captain" in front.

    Code:
    move_character "Captain Damianos" 142,135
    Last resort would be to double click on the general, opening up his summary scroll. While it's open, execute this:

    Code:
    move_character this 142,135
    celtiberian_swordsmen_lod0, 1, and 2 (November 14, 2019) - no it is November 5, 2019
    Whoops, my mistake, November 5th 2019 was the right one

    EB_Celtiberian_Swordsmen_Late_normal (November 12, 2019) - no it's November 13, 2019
    I triple checked and it's November 12, 2019 on my machine. Though it might be a matter of time zones translating the local time differently. It's also the armor upgraded model anyway, which hasn't occurred yet in your 50 or so turns of campaigning.

    At this point it's one of the two:

    Two separate cursed tiled (Confirm by teleporting a tiny and easy-to-destroy rebel army on those tiles, and manually fighting battles there)
    Performance issues caused by large battles (Unlikely, the rebel army with the Celtiberians is a half stack. You can still lower the graphics, wait 45 seconds in the post-battle screen)

    Unfortunately I don't know anything else that might be causing this. You can try baiting the rebels onto a 3rd different tile and fighting a battle there, and with minimum graphics and waiting 45 seconds on the post-results screen. That's the best precaution you can do at this point. If it crashes a 3rd time, then it's definitely those Celtiberian units.

  11. #11

    Default Re: CTD after battles in Syracuse

    Well not according to how I've been doing it in other mods (https://commands.gg/m2tw/move-character)
    And it doesn't work with a comma between the [X] and the [Y] coordinates either. And both are generals, not captains.
    And it doesn't work with its summary scroll open (with his portrait) and typing [this] instead of [his name]. Not with space nor with comma.
    In each and every way it says character not found, not something like, wrong coordinates or something.
    I could move Spvrivs, a spy, even without typing in coordinates. He was teleported to the 0 0 coordinates which is somewhere in Mauritania. LOL. But not Decimvs, the other spy.
    And yeah. I moved him with space between the two coordinates, not comma. But again, note that most of them fail due to the names not being right somehow.

    So I um ... still can't confirm the cursed tiles theory by transporting a rebel army to the test coordinates.
    I even tried it with ENG keyboard instead of my usual HUN one.
    Last edited by benczeb90; May 29, 2023 at 07:48 AM.

  12. #12

    Default Re: CTD after battles in Syracuse

    Since then I've fought a battle against a Carthaginian army including Mezugenoi (celtiberian infantry dunaminaca swordsmen) without problems.

  13. #13

    Default Re: CTD after battles in Syracuse

    Yeah I'm out of options now. Sorry about the wild goose chase. Please fight all future battles on different tiles, and make sure to play on the minimum settings, wait 45 seconds on the post results screen. And also, turn off the trace logs. Only activate trace logs when actively troubleshooting, they increase the risk of CTDs

  14. #14

    Default Re: CTD after battles in Syracuse

    It's all good. BTW since then I conquered the whole island, no crashes against Carthaginians. I wonder what will happen when I take the legions to Iberia. Gonna report back if I find anything.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •