haleks 8212 Posted November 6, 2021 Mod version : 0.10.0 (2021.11.08) m3mory Hello people! Here comes a new tool to keep your Arma3 saves in good health... M3mory is a tiny mod that will keep the size of your save files in check and ensure they remain usable for as long as you want. It doesn't require any configuration : simply load the mod whenever you're playing in single player, and it will automatically do its job anytime the engine saves your progress. Works with all types of engine saving event (mid-game, save & exit, autosaves - including during Alt+F4), in any mode (campaigns, scenarios - official or custom). Why? The engine indiscriminately saves any change made to terrain objects, amongst many other things : any opened door, any damage to any structure, any broken tree, wall or fence, ends up in the file. This means that no matter what, the size of your saves will increase - either gradually over time or dramatically depending on several factors. It can take some time in a "quiet" and well designed scenario, or it can happen very quickly in more intense, all out war scenarios. Loading or saving takes more and more time as this happens, and, on the bigger or denser terrains, this will cause the engine to crash eventually... While it may not be problematic for the most typical mission designs, it can potentially cause game-breaking issues for "endless" type or very long scenarios. M3mory is designed to solve this problem by excluding unnecessary terrain-related data from the save system. Every inconsequential object that is not in the player's vicinity is reverted to its original state whenever progress is saved, with the exclusion of destroyed structures (avoiding any potential conflict with mission critical objectives). This effectively puts a hard limit on the maximum size of your saves, or rather, it limits the impact of terrain objects interactions on your save files. Keep in mind that the mod doesn't interact with scripts or variables, which also have a direct influence on the volume of data that is saved. A few considerations Quote In order to work, m3mory has to be loaded the first time a mission is started : it cannot be used on already existing saves. A file saved with m3mory creates a dependency, and cannot be loaded without it. This is how the engine works, there is no workaround as far as I know. Considering the dependency problem, don't use m3mory if you aren't sure you will benefit from it, or when playing short scenarios. Depending on the size and density of the terrain you're playing on, the game may appear to freeze for a few seconds before saving. Better safe than sorry! M3mory should be safe to use, but it doesn't hurt to backup your saves first, those are located under “Documents/Arma 3/Saved”. If necessary, mission makers can force m3mory to ignore their mission by defining a simple variable : m3mory_skip = true; The m3mory process can be turned back on at any time by destroying the “m3mory_skip” variable : m3mory_skip = nil; M3mory updates won't break your saves : the code can detect newer versions and seamlessly update itself from an existing m3mory save. Initial Test Results Spoiler Altis, empty map, single player in Kavala : initial save : 11372 kb with partial damage to all terrain objects in a 1000m radius around the player : 15 198 kb after m3mory clean up : 13 052 kb with partial damage to all terrain objects in a 5000m radius : crash after m3mory clean up : 13 565 kb with partial damage to all terrain objects in a 7000m radius : crash after m3mory clean up : 13 612 kb Download Want to support my work? 8 1 Share this post Link to post Share on other sites
haleks 8212 Posted November 8, 2021 And it's on! M3mory is now available on the workshop. Since the mod is meant to improve user experience for long-term scenarios, I've made sure it can update itself from any saved file that has a m3mory hook : you won't need to restart your favorite SP missions if m3mory is updated. A quick note : in theory, m3mory could be used to repair heavily cluttered save files, but apparently it's impossible to inject new scripts or event handlers in a mission that has been initialized already... 2 3 Share this post Link to post Share on other sites
LSValmont 789 Posted November 9, 2021 Pretty cool! Many will rejoice due to the increased stability alone! M3mory MP when? 😃 Share this post Link to post Share on other sites
haleks 8212 Posted November 10, 2021 On 11/9/2021 at 1:47 PM, LSValmont said: M3mory MP when? 😃 I really don't know - that's a completely different problem... I've been working on & off on a custom persistency framework for Remnant, one that would work in both SP & MP... I'm quite happy with how it's shaping up to be, but it is very far from completion. The cool thing is that it is designed to allow mission makers to push any kind of data to be saved (as well as what should be done with said data) with minimal configuration, on the other hand, that modular approach is more difficult to build... And on top of making a persistency system from the ground up, there's also a few potential exploits to solve (something I've been stuck on for a few days now). To this day I don't know yet if the next Remnant expansion will use that system, or if I'm going to stick with the m3mory approach (cleaning-up data before the engine saves) - both have their advantages and problems. But if I do finish the custom one, I'll most likely release a standalone version, stripped from Remnant specific features. 2 Share this post Link to post Share on other sites
LSValmont 789 Posted November 10, 2021 3 hours ago, haleks said: I really don't know - that's a completely different problem... I've been working on & off on a custom persistency framework for Remnant, one that would work in both SP & MP... I'm quite happy with how it's shaping up to be, but it is very far from completion. The cool thing is that it is designed to allow mission makers to push any kind of data to be saved (as well as what should be done with said data) with minimal configuration, on the other hand, that modular approach is more difficult to build... And on top of making a persistency system from the ground up, there's also a few potential exploits to solve (something I've been stuck on for a few days now). To this day I don't know yet if the next Remnant expansion will use that system, or if I'm going to stick with the m3mory approach (cleaning-up data before the engine saves) - both have their advantages and problems. But if I do finish the custom one, I'll most likely release a standalone version, stripped from Remnant specific features. Good to hear that you are working on your own MP save system. Perhaps with M3mory you've inadvertently made using BI saves for MP sessions viable now!? Also this might come handy in your future endeavors with M3mory: https://community.bistudio.com/wiki/isSaving Share this post Link to post Share on other sites