How should I go about storing stats for my units ingame?

Sorry if this is the wrong place, game design didn’t feel like the right category.

So in my game I am working on there are smaller units that you can do stuff with. They each have stats. The way it works right now is to make a new unit it clones the model from ServerStorage into its folder in Workspace.

The question I have is whether or not I should change how I have done the stats system. Right now there is a configuration folder inside the unit with all of its stats via values. This means other scripts can buff its stats or subtract it.

At the time I hadn’t considered making it OOL which I now want to do in a rewrite of the code. I could store the stats in the unit’s behaviour script with the OOL system. Then I could use an event to change the units stats cross-scripts.

Is there a better way of doing this that I am not seeing? Should I keep using values or should I use module scripts and OOL, or is there another better way to do so?

You could also use the new (ish) attribute system that has been added. With any instance you can call :SetAttribute(…) and :GetAttribute(…) which seems like all you need to store stats.