Items with unique mods and rolls have the odds to create massive save/load codes
The key to this is to base the save code directly on the stats, such that the roll is defining an easily coded number. For example, with a full alphanumeric non-case-sensitive code, you have 1,296 possibilities per two characters. Assuming two characters are used for pre-roll weights on the rolled numbers, like the level and item type, you can get 1,679,616 possibilities per two characters after the first two. This should be
plenty, allowing an eight-character item code to have 4.738
quintillion possibilities (if I have the order of operations correct by ignoring the first two altering the later numbers, which is already accounted for. It could be even larger! Or multiple orders of magnitude smaller, which still leaves it in the trillions)
As for how to use it, if you go with the arrangement above (obscuring optional), you could, as mentioned, have the first two characters be for level and type. Type can be including rarity (for example, with four item rarities, you can have nine item types. Or nine rarities and four types), while an item level limit of 36 is plenty enough, if you design it so that you usually get underleveled gear and high-level gear is having a lot of gear of the more "appropriate" level. Then the first character of each ability field character-pair can define what effect the item has, resulting in 36 options, while the second defines the strength of it, giving a gradient of 36 ability strengths within the same item level (with overlap, you can make a sine wave of item strength distributions!).
With this, it gets cumbersome to type in fairly quickly, but that's with three properties per item, letting each property have it's own value in the save. Multiple values can be defined by fragmenting the ability type into pairs, triads or more, making it so the "type" character defines multiple abilities. Then the strength character(s) can define both absolute strength and strength weight between the abilities to replicate some arbitrary distribution. You reduce the space for individual values, but increase real possibilities from the raw combinations. Extending the multiple abilities per character further, you could potentially define multiple entire items with the same segment of data, which works best with equipped items that occupy pre-defined slots, as you then don't need any data to define item type or position.
If you
really want to get crazy, you can have properties that scale with other values, then store those values as part of the property itself. An example of this is having a "chain" of items that gain strength with experience in an exponentially decreasing way, which is coded by storing XP data in the same block as the item properties, then the code that reads items is reading the XP data in the same block. This naturally leads into item slot unlocking once you finally have the XP value to actually have the data be a non-zero.