Potentials are stored in the WZ files under Item.wz/ItemOption.img. The Image (.img, not an actual image) contains subdirectories, each subdirectory named for its potential ID.
Within each subdirectory, the contents fall under a similar pattern:
"info" Sub Directory
This subdirectory always contains a WzStringProperty called "string" and a WzCompressedIntProperty called "weight". In addition, there are the optional properties "optionType" and "reqLevel" (both WzCompressedIntProperties)
"string" contains the text for the potential as it would appear on an item's tooltip. The text often contains one or more parameter names that indicate which stat increase to display.
An example of the "string" property is
where "incSTR" will be replaced by the amount of STR to increase by. The "#" denotes the start of the parameter, and the parameter name continues up to the next non-alphanumeric character.
The effects of this property are unknown. Presumably, it is meant to be used in the calculations for determining the chance of obtaining this potential, but this is unconfirmed.
Determines which items can obtain the given potential. Not all values of optionType are known, but the known ones are:
10: weapons 11: all equipment except weapons 20: all armors 40: accessories 51: hat 52: top and overall 53: bottom and overall 54: glove 55: shoe 1: all equipment
If this property exists, the item must be at least this level in order to obtain the potential.
"level" Sub Directory
The "level" sub directory consists of 20 WzSubDirectories, named sequentially from "1" to "20" (in higher GMS versions, this goes up to 25). These determine what is commonly known as "potential tier": or more specifically, the strength of the potential at a given level ("given level" referring to the item's Level requirement).
Levels are rightside exclusive, meaning that items which have a Level requirement of 0 to 9 will pull their potential data from the "1" subdirectory; items with a Level requirement of 10-19 will pull from the "2" subdirectory; items with a Level requirement of 20-29 will pull from the "3" subdirectory; and so on. If a potential does not have an entry defined for a specific level requirement gap, the game will crash when a potential is put on an item with that required level.