You might be able to do a thing whereby you put the variables for all of the trophies into one string in storage and then parse them back out with tokens.
[quote:mp3b8pik]
On start layout > Check "key_trophies" exists.
On Item "key_trophies" exists > Get item "key_trophies"
On Item "key_trophies" get > Set "trophy0" to tokenat(localStorage.ItemValue, 0, "~")
Set "trophy1" to tokenat(localStorage.ItemValue, 1, "~")
Set "trophy2" to tokenat(localStorage.ItemValue, 2, "~")
Set "trophy3" to tokenat(localStorage.ItemValue, 3, "~")
etc
On Item "key_trophies" missing > Set all trophies to 0
and for unlocking
[quote:mp3b8pik]On Item "key_trophies" get > Set item "key_trophies" to trophy0 & "~" & trophy1 & "~" & trophy2 & "~" & trophy3 (etc)
So what you're actually putting in storage is just one string that might end up looking like this: "1~1~1~0~1~0" etc, where each number represents whether or not you've got trophy 0, trophy 1, trophy 2, etc.
This is off the top of my head so the logic might be a bit wonky but that's the approach I'd take. You might be able to do a crafty for-each loop or something to simplify it further too