------------------
These init priority numbers (init -9 python:), how should I use them?
Order of loading from -9999 to 9999, everything out of -999 to 999 range is generally reserved for Ren'Py development team and should not be used unless you know what you're doing.
Basically just throw everything on init python or if you want to be really safe, init 999 python

Remember that everything in the init is run every time game starts/being loaded so you can only initialize stuff there. All instantiation goes to labels.
Everything that needs to be saved goes to labels with other words:
For example:
Library.Skills.MarsSniper = ... <-- can go to the
init or label.
char["Mars"].magic_skills["Mars Sniper"] = 1 <-- should go to a
label.