J'ai remarqué que dès qu'on supprime, change de noms, ou de type une property sur un script, il vaut mieux procéder de cette manière (pas besoin à l'ajout d'une nouvelle property dont le nom est tout neuf) :
-Supprimer le script de l'objet auquel il est rataché
-Fermer la fenêtre de l'objet en validant le changement.
-Sauvegarder le mod
-Rattacher le script de l'objet
-Ré-assigner les properties (dont les valeurs ont été reset)
-Fermer la fenêtre de l'objet en validant le changement.
-Sauvegarder le mod.
C'est assez lourd, mais si on ne fait pas ça, certaines fois les anciennes properties (supprimées ou modifiées) restent en mémoire dans l'esp (le plugin, et non dans les scripts sources ou compilés). Le hic c'est que ça n'arrive pas tout le temps, et que je ne sais pas ce qui provoque ce problème.
Mais avec cette méthode les properties resteront toujours propres et valides.
Si toutes les properties de scripts sont "propres" et que l'on charge un mod dont les properties ont changé d'une manière propre (par ex si on charge un mod mis à jour) :
Au 1er rechargement de sauvegarde on obtiendra ce message d'erreur (uniquement au chargement) pour toutes les properties changées ou supprimées dans le log :
Variable :: MyVar on script MyQuestScript loaded from save not found within the actual object. This variable will be skipped.
Ca c'est le "bon" message à obtenir !
-> Si on re-sauvegarde ensuite, et qu'on recharge cette sauvegarde. Au 2ème chargement donc, ces messages disparaîtront.
Le mauvais message c'est celui-là :
warning: Property MyProperty on script MyQuestScript attached to MyQuest (0801DED2) cannot be initialized because the script no longer contains that property
Si on obtient ce message c'est qu'une property à été supprimée ou modifiée et qu'elle est toujours en mémoire dans le plugin. Il faut alors appliquer la méthode citée précédemment pour correctement réinitialiser les properties.