I think this is wrong, and therefore the logic in `if (!tinycolor.equals(initialColor, selectedColor)) {` as well. As specified in the function documentation, we need to get all of the skin changes compared to the default skin, not the initial skin. We need to save all of the fields that override default skin values. When re-saving a skin, that should still include all values that have been changed in the past.