Yes, you can use structs for that. I see 2 ways to initialise them at startup - in the script, or a harder, but more flexible way - program a function that reads data from file and fills structs with it. After you have initialised the structs you can access and alter it's content anytime. Yes, you can use skills for temporary information, but i currently don't see reasons for that