@3dgs_snake yeah I get the same result out of the first code, but let me emphasize that you read out the value for hero0. hero0 is coincidentally the only struct which works... just try it out for "hero1" thats the case where the trouble starts.
An implemented second-rate idea is better than a good idea, which gathering dust in your brain.