Skyrim
0 of 0

File information

Last updated

Original upload

Created by

avarisc

Uploaded by

theorified

Virus scan

Safe to use

30 comments

  1. head0nfire
    head0nfire
    • member
    • 1 kudos
    This is a great idea and much-needed for the game, but when I put an item in the chest, it disappears when I switch characters. Then on the character that put the items in the chest, the chest is gone and the items have (thankfully) been restored to my inventory. I have SKSE and JContainers installed.
  2. ech3lon
    ech3lon
    • supporter
    • 2 kudos
    I like the idea of this mod and I actually needed something like this for testing my own mod.
    However I cannot currently make use of it, because of a few problems with how this was implemented. The first problem is that the mod is saving the full FormID of an item directly as a 32-bit integer. Why is this a problem? If the user changes their load order in any way (even if mods only move by a single offset) this will totally break all item references when trying to load the contents inside the chest. This is because the 32-bit FormIDs of any modded items have changed (due to the load order change).

    This brings me to the second problem. Internally the chests script uses the function GetFormID() to obtain the 32-bit FormID of an item. It then checks whether this FormID is greater than zero, to determine the validity of an item. Why is this a problem? FormIDs in Skyrim are based on unsigned integers but GetFormID() returns a signed integer (since papyrus does not know unsigned integers). This means that for all items coming from a mod with a load order index higher than ~0x8, GetFormID() will return negative values, due to an internal overflow. The script then decides that these items are invalid, since their FormID is not greater than zero. In reality these items are perfectly valid, they just come from a mod with a higher load order index. In heavily modded setups this is a game breaker for using the chest.

    So what is the solution? The short answer: Instead of serializing FormIDs directly as integers use JsonUtil which is part of PapyrusUtil to save Forms. JsonUtil does some magic to break up the FormID. This solves the unsigned vs. signed integer problem and also makes Forms persistent across load orders and save games.

    The long answer (aka. why this happens):
    When trying to serialize items in skyrim (across saves, systems and load orders) it is important to separate the ID of a Form from the load order index of the mod the item is coming from. SkyProc and PapyrusUtil do this by breaking the FormID into two parts. The mod internal ID of the form and the load order index. When data is serialized (saved) the load order index is mapped to the name of the esp plugin and the internal index is saved as an integer. Example: instead of saving the literal FormID 0x2402328C it is broken up in internal ID and esp name like this: "0x02328C|Remodeled Armor.esp". Therefore the saved data is now load order independent. This is very important, since in my view it is unrealistic to assume that a load order is never going to change across several different save games and characters.

    If the author is interested in solving this problem I would recommend taking a look at PapyrusUtil, specifically the JsonUtil and trying to save a few forms with it. I believe Metachest could be adapted to JsonUtil fairly easily. I am not familiar enough with JContainers, so I don't know if it can also break up FormIDs in this way.

    Cheers
    1. Darklocq
      Darklocq
      • premium
      • 125 kudos
      Any chance this issue has been resolved? The way I see it, the main use for this mod is recovering a salvageable character (with a mod like Character Export) and salvageable gear (with this mod), and quest statuses (manually), then picking up where you left off in a new game after an existing game becomes unusable. That usually happens because of a bad mod, which means removing that mod, which means a change in mod indexes.

      Reports suggest that the competing mod, SkyBox, is badly broken and bloats savegames to 30-100MB. So, we need a mod that does this, properly.
    2. Darklocq
      Darklocq
      • premium
      • 125 kudos
      I now wonder if one can (in one's new game) take all the stuff from the Metachest and put it into personal inventory, then remove Metachest, then remove the problematic mod(s), and have things work okay, since the game itself shouldn't be doing anything load-order-dependent with what is actually in player inventory.

      Another possible approach might be removing the bad mods first, doing a save-cleaning in the screwed up game, to the extent it will work, dumping remaining gear into Metachest, and starting a new game.
  3. sashascum
    sashascum
    • member
    • 15 kudos
    Thank you! Everything works fine
  4. ThePopulous
    ThePopulous
    • premium
    • 10 kudos
    Six save games and once you place items in chest, cannot reopen the chest when the save is reloaded. Also, the chest is empty in the new game.
  5. tiny0125
    tiny0125
    • premium
    • 0 kudos
    I am having a little issue with this. It appeared it was working fine until now, when i actually made my second character.

    I made a character who was going to be an assassin and i made assassin gear. I put all his equipment into the chest and it seemed to work fine (though i don't think the chest likes crossbows... maybe just my enchanted crossbow [wintermyst])

    I tested multiple times on my first character and it seemed to work. i made a "test" dummy to collect the content in the chest... and behold CTD. now i go back to the old character, the same thing happens. I even tried uninstalling it (uninstall from NMM & Manually from front page by deleting metachest.esp along with the two script files.)

    It appears the items come back and "poof" CTD. Is there any way for me to delete all the content in the box?

    Edit: I was reading the code, and i found where you load my chest. imma see what happens if i delete it...

    Edit 2: Ok. For anyone who had my exact issue (CTD When opening the metachest), what i did was uninstall metachest mod (you can do it manually, or NMM). Then i went to "C:\Users\YOUR_NAME\ Documents\My Games\Skyrim\JCUser" [i added a space to document to avoid emoticon] and deleted "avarisc_metachest.json". After that, i reinstalled Metachest and started the game.
    1. theorified
      theorified
      • account closed
      • 6 kudos
      That's very interesting - the JContainers plugin takes care of reading and writing the maps. A crash (as opposed to a more graceful error) is on the part of JContainers. That said, if you encounter the error again, maybe PM me a copy of the avarisc_metachest.json file, so I can check its syntax?

      I have a guess at what may cause it - if an item name contains a character that is a JSON syntax character, it may cause issues. I'll look into it when I get some time here.
  6. VulcanTourist
    VulcanTourist
    • supporter
    • 15 kudos
    Are you associated with the new SbyBox mod released today that appears to use JContainers to add the same general features, or is that someone else exclusively?
    1. VulcanTourist
      VulcanTourist
      • supporter
      • 15 kudos
      Hmmm... apparently you're not associated with anything Skyrim now.
    2. theorified
      theorified
      • account closed
      • 6 kudos
      My apologies - kind of drifted away as life elsewhere become more involved. I am not associated with the other SbyBox mod. I failed to find a way to serialize custom potions, despite picking away at other mods, trying different libraries, and even tried making my own SKSE plugin for the task.

      This limitation kind of broke my spirit for this mod, as I really was going for something that 'just always works', without any exceptions or fiddling or rules required on the part of the player. With the new Skyrim Special Edition around the corner, I may get back into this in the near future.
  7. Darkxenoth
    Darkxenoth
    • supporter
    • 4 kudos
    Are you still actively working on this?
  8. EpicCrab
    EpicCrab
    • premium
    • 521 kudos
    I think jaxonz renamer might add dynamic names. If the check isn't necessarily hard to run, you might want to add that.
  9. Crow1993
    Crow1993
    • supporter
    • 0 kudos
    Really great mod already. Since Familiar Faces didn't work for me and it never got the chest this one is doing exactly what I needed and wanted.

    Do you know if I can move the chest with Jaxonz Positioner somewhere else? The Cabin is actually an okay spot but I would prefer different spots for my different chars if I can't have a neutral one.

    Thank you!
    1. theorified
      theorified
      • account closed
      • 6 kudos
      Sorry for the late reply, been rather busy. I am working on an overhaul for this mod, which will allow summoning the chest rather than it having a fixed position. Should address your issue.

      As for the positioner mod, I have not tested, and don't really want to go through testing and/or adding support when that will become irrelevant with the next update. If you like, empty the chest so its safe and test it with a cheap ingredient or such.
  10. Kolagon
    Kolagon
    • member
    • 16 kudos
    Perhaps you could program some kind of failsafe? Like incase the items do end up lost, you can use some kind of spell or something to bring them back. Or perhaps you can make it where you clone the item from your inventory, one to transfer and anothr to keep.
    1. theorified
      theorified
      • account closed
      • 6 kudos
      Hmm. Cloning is a bit closer to cheating than I would like. I'm trying to create legitimate interaction options between savegames. Not so much wanting to support cloning/duping, as simply to create windows between worlds, if you will.

      Failsafe on the other hand is an excellent concept - I just don't have the foggiest idea how to implement it. The only data at risk is data I can't figure out how to read yet, and if I can't read it I can't really back it up, either. That said, when the project is completed I don't expect item loss will be a present concern.

      Thanks for the input! I will give it some thought.
    2. patryks
      patryks
      • supporter
      • 1 kudos
      I'm assuming that items that get put into the chest get destroyed. What if instead of destroying them they get put into a hidden container. Of course now you have to manage that and it would allow item duping. That being said, it might not be a bad idea to allow the option. As it is it's so easy to get anything you want with console commands or other mods I don't think it's that big of a deal. Losing an item would be more annoying.
    3. theorified
      theorified
      • account closed
      • 6 kudos
      This is manageable. That chest would likely get out of hand over time, so I'll have the feature disabled by default, likely.