Skip to content

Modron Maze reset bug - we need a save

JuliusBorisovJuliusBorisov Member, Administrator, Moderator, Developer Posts: 22,977
Hey all! Over the last few weeks, we've been trying to repro and fix the infamous Modron Maze reset bug in PST:EE (for the next patch). So far, we've established that the bug happens in modded installs (granted, it's caused by the actual bug). What we're trying to find out is - does the bug happen in unmodded games as well?

If you have a save and repro steps for this and if you're NOT using any mods for PST:EE, please comment in this thread and attach your info. Thanks a lot!

Comments

  • argent77argent77 Member Posts: 3,631
    I couldn't trigger the bug in an unmodded game (unmodded, as in having clean override folders). It requires at least one file in the override folder that can also be stored in savegames (e.g. maps or stores).

    The quickest way to test the bug is to:
    1. Save the original AR0202.ARE in the override folder (any of the supported override folders will do)
    2. Start a new game
    3. Use the debug console to explore the whole map
    4. Exit the map to the Mortuary, 3rd floor
    5. Execute this command in the debug console:
      C:Eval('GenerateModronMaze()')
      
    6. Return to the 2nd floor of the Mortuary

    The map should have been reverted to the "unexplored" state if the bug happened, as if you visited the map for the first time.
  • BubbBubb Member Posts: 1,025
    I can't speak to the function of the greater Modron code, but I can tell you what's generally causing the bug.

    dimmRemoveModronFiles() calls dimmScanOverrides("*", "*"), which restores all in-memory game files to their override folder state. It's unsafe for the engine to be doing such a blanket reload of resources during the middle of gameplay, since the current state of (unloaded) areas and other Infinity Engine files are only held in the working memory that's being reloaded.

    This sort of state-wiping bug can easily be replicated on the other EEs by running Infinity_SetLanguage("en_US") or Infinity_UpdateCloudSaveState() from the Lua console.
Sign In or Register to comment.