m3mory

If you liked this item, please rate it up on Steam Workshop page.

Author: Haleks

Last revision: 8 Nov, 2021 at 14:24 UTC

File size: 76.8 KB

On Steam Workshop

Description:
Reduce the size of your save files

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
  • 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

Altis, empty map, single player in Kavala :

  • initial save : 11372 kb
  • with partial damage to all terrain objects in a 1000m radius : 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

Want to support my work?

[www.patreon.com]

[paypal.me]